In [1]:
rm(list=ls())
gc()
setwd("/hpc/group/pbenfeylab/CheWei/CW_data/genesys/")
A matrix: 2 x 6 of type dbl
used(Mb)gc trigger(Mb)max used(Mb)
Ncells 62526633.4136147072.8110200058.9
Vcells1159075 8.9838860864.0180227913.8
In [2]:
## Need seu4
suppressMessages(library(Seurat))
suppressMessages(library(cowplot))
suppressMessages(library(scattermore))
suppressMessages(library(scater))
suppressMessages(library(cowplot))
suppressMessages(library(RColorBrewer))
suppressMessages(library(grid))
suppressMessages(library(gplots))
suppressMessages(library(circular))
suppressMessages(library(ggplot2))
suppressMessages(library(ggnewscale))
suppressMessages(library(tidyverse))
suppressMessages(library(ComplexHeatmap))
suppressMessages(library(circlize))
suppressMessages(library(patchwork))
In [3]:
sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: AlmaLinux 9.3 (Shamrock Pampas Cat)

Matrix products: default
BLAS/LAPACK: /hpc/group/pbenfeylab/ch416/miniconda3/envs/seu4/lib/libopenblasp-r0.3.21.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] grid      stats4    stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
 [1] patchwork_1.1.3             circlize_0.4.15            
 [3] ComplexHeatmap_2.14.0       forcats_0.5.2              
 [5] stringr_1.5.1               dplyr_1.1.3                
 [7] purrr_1.0.2                 readr_2.1.3                
 [9] tidyr_1.3.0                 tibble_3.2.1               
[11] tidyverse_1.3.2             ggnewscale_0.4.8           
[13] circular_0.4-95             gplots_3.1.3               
[15] RColorBrewer_1.1-3          scater_1.26.1              
[17] ggplot2_3.4.4               scuttle_1.8.0              
[19] SingleCellExperiment_1.20.0 SummarizedExperiment_1.28.0
[21] Biobase_2.58.0              GenomicRanges_1.50.0       
[23] GenomeInfoDb_1.34.8         IRanges_2.32.0             
[25] S4Vectors_0.36.0            BiocGenerics_0.44.0        
[27] MatrixGenerics_1.10.0       matrixStats_1.1.0          
[29] scattermore_1.2             cowplot_1.1.1              
[31] SeuratObject_4.1.3          Seurat_4.1.1.9001          

loaded via a namespace (and not attached):
  [1] utf8_1.2.4                spatstat.explore_3.2-5   
  [3] reticulate_1.34.0         tidyselect_1.2.0         
  [5] htmlwidgets_1.6.2         BiocParallel_1.32.5      
  [7] Rtsne_0.16                munsell_0.5.0            
  [9] ScaledMatrix_1.6.0        codetools_0.2-19         
 [11] ica_1.0-3                 pbdZMQ_0.3-8             
 [13] future_1.33.0             miniUI_0.1.1.1           
 [15] withr_2.5.2               spatstat.random_3.2-1    
 [17] colorspace_2.1-0          progressr_0.14.0         
 [19] uuid_1.1-0                ROCR_1.0-11              
 [21] tensor_1.5                listenv_0.9.0            
 [23] repr_1.1.4                GenomeInfoDbData_1.2.9   
 [25] polyclip_1.10-6           parallelly_1.36.0        
 [27] vctrs_0.6.4               generics_0.1.3           
 [29] timechange_0.1.1          doParallel_1.0.17        
 [31] R6_2.5.1                  clue_0.3-64              
 [33] ggbeeswarm_0.7.1          rsvd_1.0.5               
 [35] bitops_1.0-7              spatstat.utils_3.0-4     
 [37] DelayedArray_0.24.0       assertthat_0.2.1         
 [39] promises_1.2.1            scales_1.2.1             
 [41] googlesheets4_1.0.1       beeswarm_0.4.0           
 [43] gtable_0.3.4              beachmat_2.14.0          
 [45] globals_0.16.2            goftest_1.2-3            
 [47] rlang_1.1.2               GlobalOptions_0.1.2      
 [49] splines_4.2.2             lazyeval_0.2.2           
 [51] gargle_1.2.1              spatstat.geom_3.2-7      
 [53] broom_1.0.2               modelr_0.1.10            
 [55] reshape2_1.4.4            abind_1.4-5              
 [57] backports_1.4.1           httpuv_1.6.12            
 [59] tools_4.2.2               ellipsis_0.3.2           
 [61] ggridges_0.5.4            Rcpp_1.0.11              
 [63] plyr_1.8.9                base64enc_0.1-3          
 [65] sparseMatrixStats_1.10.0  zlibbioc_1.44.0          
 [67] RCurl_1.98-1.6            deldir_1.0-9             
 [69] GetoptLong_1.0.5          pbapply_1.7-2            
 [71] viridis_0.6.4             zoo_1.8-12               
 [73] haven_2.5.1               ggrepel_0.9.4            
 [75] cluster_2.1.4             fs_1.6.3                 
 [77] magrittr_2.0.3            data.table_1.14.8        
 [79] RSpectra_0.16-1           reprex_2.0.2             
 [81] lmtest_0.9-40             RANN_2.6.1               
 [83] googledrive_2.0.0         mvtnorm_1.1-3            
 [85] fitdistrplus_1.1-11       hms_1.1.2                
 [87] mime_0.12                 evaluate_0.23            
 [89] xtable_1.8-4              readxl_1.4.1             
 [91] shape_1.4.6               fastDummies_1.7.3        
 [93] gridExtra_2.3             compiler_4.2.2           
 [95] KernSmooth_2.23-20        crayon_1.5.2             
 [97] htmltools_0.5.7           tzdb_0.3.0               
 [99] later_1.3.1               lubridate_1.9.0          
[101] DBI_1.1.3                 dbplyr_2.2.1             
[103] MASS_7.3-58.3             boot_1.3-28.1            
[105] Matrix_1.5-4              cli_3.6.1                
[107] parallel_4.2.2            igraph_1.5.1             
[109] pkgconfig_2.0.3           sp_2.1-1                 
[111] IRdisplay_1.1             plotly_4.10.3            
[113] spatstat.sparse_3.0-3     foreach_1.5.2            
[115] xml2_1.3.3                vipor_0.4.5              
[117] XVector_0.38.0            rvest_1.0.3              
[119] digest_0.6.33             sctransform_0.4.1        
[121] RcppAnnoy_0.0.21          spatstat.data_3.0-3      
[123] cellranger_1.1.0          leiden_0.4.3             
[125] uwot_0.1.16               DelayedMatrixStats_1.20.0
[127] shiny_1.7.5.1             gtools_3.9.4             
[129] rjson_0.2.21              lifecycle_1.0.4          
[131] nlme_3.1-162              jsonlite_1.8.7           
[133] BiocNeighbors_1.16.0      viridisLite_0.4.2        
[135] fansi_1.0.5               pillar_1.9.0             
[137] lattice_0.21-8            fastmap_1.1.1            
[139] httr_1.4.7                survival_3.4-0           
[141] glue_1.6.2                iterators_1.0.14         
[143] png_0.1-8                 stringi_1.8.1            
[145] RcppHNSW_0.5.0            BiocSingular_1.14.0      
[147] caTools_1.18.2            IRkernel_1.3.1.9000      
[149] irlba_2.3.5.1             future.apply_1.11.0      

Load TF list¶

In [4]:
wanted_TFs <- read.csv("./Kay_TF_thalemine_annotations.csv")
In [5]:
nrow(wanted_TFs)
2484
In [6]:
## Make TF names unique
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G33880"]="WOX9"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G45160"]="SCL27"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G04410"]="NAC78"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G29035"]="ORS1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G02540"]="ZHD3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G16500"]="IAA26"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G09740"]="HAG5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G24660"]="ZHD2"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G46880"]="HDG5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G28420"]="RLT1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G14580"]="BLJ"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G45260"]="BIB"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G02070"]="RVN"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G28160"]="FIT"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G68360"]="GIS3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G20640"]="NLP4"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G05550"]="VFP5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G59470"]="FRF1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G15150"]="HAT7"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G14750"]="WER"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G75710"]="BRON"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G74500"]="TMO7"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G12646"]="RITF1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G48100"]="ARR5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G16141"]="GATA17L"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G65640"]="NFL"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G62700"]="VND5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G36160"]="VND2"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G66300"]="VND3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G12260"]="VND4"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G62380"]="VND6"
In [7]:
## TTG1
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G24520"]
'TTG1'
In [8]:
## SCRAMBLED
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G11130"]
In [9]:
## CAPRICE
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G46410"]
'CPC'

Load GRN centrality scores for each transition¶

In [50]:
stem2pro <- read.csv("./TF_GRN_centrality_t0-t1_zscore3.csv")
pro2trans <- read.csv("./TF_GRN_centrality_t1-t3_zscore3.csv")
trans2el <- read.csv("./TF_GRN_centrality_t3-t5_zscore3.csv")
el2el <- read.csv("./TF_GRN_centrality_t5-t7_zscore3.csv")
el2mat <- read.csv("./TF_GRN_centrality_t7-t9_zscore3.csv")
In [51]:
head(stem2pro)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1GAMMA-H2AX101.04815860.351274790.696883850.81736900.0024808780.122994140.745519710.12903226...0.099691680.64450450.00033127030.059853320.22637110.185530920.040840140.00016357870.00053594910.06437981
2HB-2 90.25212460.155807370.096317280.32962590.0013925210.051779870.050179210.01792115...0.207605340.95411610.00042212780.081072150.40373400.159859980.243873980.80443625340.00067648510.08090327
3CRF2 90.75354110.458923510.294617560.75790300.0020185800.103034481.053763440.61648746...0.147995890.90415080.00037431850.067184021.22403730.840140020.383897320.98835592540.00074178190.12383249
4HDA3 80.85835690.056657220.801699720.99357780.0026482150.118493911.279569890.44802867...0.000000000.00000000.00000000000.000000000.30805130.231038510.077012840.14414960900.00060458670.06877130
5HMGB6 80.32011330.277620400.042492920.00000000.0020073570.070627910.390681000.26164875...0.061664950.83447630.00033729560.048708760.11551930.098016340.017502920.00000000000.00063021460.04251342
6HAT1 80.37677050.152974500.223796030.29726530.0019263470.078737020.132616490.11827957...0.283658790.96192460.00042168320.086052970.47141190.353558930.117852980.73700094880.00070780860.08331075
In [52]:
head(pro2trans)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1HAT1 80.46078430.276470590.184313733.133403e-020.0013276120.086969050.041443850.00802139...0.0385005070.2035693220.00033118740.0222560530.158381500.068208090.090173410.0000000000.00029103420.04766973
2GAMMA-H2AX80.71960780.292156860.427450989.884241e-010.0014088030.097284630.216577540.09358289...0.0162107400.0000000000.00023208330.0205392570.000000000.000000000.000000000.0000000000.00000000000.00000000
3GRP2B 80.27450980.149019610.125490203.852229e-050.0013019470.064933130.074866310.06283422...0.3323201620.0037063980.00039668810.0808453330.275144510.183815030.091329480.0445702210.00036464950.06817366
4BME3 70.13725490.076470590.060784311.896105e-010.0010888490.039100600.113636360.07352941...0.0324214790.0370095210.00022076930.0180884610.048554910.026589600.021965320.0037532110.00027267010.02049709
5GATA2 71.29803920.568627450.729411769.796833e-010.0016641780.125728601.549465240.95989305...0.0010131710.0039437640.00017396630.0033353690.099421970.045086710.054335260.0787090560.00030958100.03070615
6HB20 70.40196080.017647060.384313731.637929e-010.0012666210.083167330.056149730.00802139...0.0982776090.0703188100.00030352020.0442322940.201156070.188439310.012716760.0015400880.00038099270.05735016
In [53]:
head(trans2el)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1HB20 80.298932380.120996440.1779359430.79433332700.00055779570.105357270.2310405640.194003527...0.062266500.165476720.00033059090.0412456840.000000000.000000000.000000000.000000e+000.00000000000.00000000
2AT4G3041080.701067620.101423490.5996441280.56610907060.00056522640.168195411.2239858910.895943563...0.027397260.029917420.00034751720.0362122880.000000000.000000000.000000000.000000e+000.00000000000.00000000
3UPB1 70.855871890.037366550.8185053380.30106698130.00061385030.187423910.0899470900.037037037...0.047322540.000000000.00035517830.0444429490.055555560.046783630.008771930.000000e+000.00057286140.02830553
4BZIP61 70.142348750.078291810.0640569400.59176229530.00042995940.063559160.0687830690.061728395...0.095890410.674290300.00042042170.0621609690.000000000.000000000.000000000.000000e+000.00000000000.00000000
5HAT1 60.017793590.016014230.0017793590.00000000000.00039003650.017116890.0088183420.007054674...0.018679950.473039070.00040622870.0512642270.071637430.062865500.008771930.000000e+000.00051063170.03622616
6AT1G7484060.167259790.101423490.0658362990.00085320440.00053576020.079183050.0529100530.042328042...0.001245330.000000000.00020166860.0039877830.106725150.084795320.021929823.638917e-050.00084617640.04511538
In [54]:
head(el2el)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1UPB1 90.44415580.218181820.225974030.4261025430.00058829460.113399110.068518520.03703704...0.0439077941.172483e-020.00027488390.040736060.174486800.161290320.013196480.0019378090.00074431380.06616948
2HAT22 90.28311690.064935060.218181820.3588879870.00058780710.090881370.403703700.11851852...0.0164654235.186910e-050.00022713180.025491510.086510260.070381230.016129030.0527600860.00072532340.03748769
3WLIM1 80.12467530.010389610.114285710.3760484310.00046438620.057767080.116666670.03518519...0.0625686061.502756e-020.00030277030.050516300.000000000.000000000.000000000.0000000000.00000000000.00000000
4AT4G3041070.20000000.132467530.067532470.0057562230.00051113660.070341530.785185190.65555556...0.0076838642.050639e-050.00023166300.025025660.000000000.000000000.000000000.0000000000.00000000000.00000000
5LEP 70.76363640.696103900.067532470.2963406390.00066284210.158171650.829629630.75185185...0.0197585071.952811e-020.00021282590.023514680.000000000.000000000.000000000.0000000000.00000000000.00000000
6GBF6 60.00000000.000000000.000000000.0000000000.00000000000.000000000.000000000.00000000...0.5060373223.889941e-020.00036759040.137924280.000000000.000000000.000000000.0000000000.00000000000.00000000
In [55]:
head(el2mat)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1AXR3 80.78097980.13544670.645533140.99453620.00085156540.126001570.000000000.00000000...0.0045924231.807936e-040.00012974460.0060552790.787685770.590233550.197452230.0199439850.00141647780.11644417
2HB-7 60.18731990.16714700.020172910.00000000.00078312160.067426660.109540640.08833922...0.0114810562.630086e-030.00023918470.0255271820.067940550.025477710.042462850.0000000000.00064471610.02364832
3RAV1 60.47262250.19308360.279538900.60332160.00076601860.105812650.204947000.03886926...0.0264064291.187695e-050.00027870720.0418453970.121019110.084925690.036093420.0042236980.00072125570.04033330
4HAT2260.97982710.71469740.265129680.56953910.00100496550.143273230.434628980.16254417...0.0091848450.000000e+000.00020732870.0141633590.057324840.033970280.023354560.0140082220.00059898630.02039925
5RD26 61.02881840.57348700.455331410.78585230.00089928930.144858780.484098940.24028269...0.0401836972.441374e-040.00028001480.0442172420.000000000.000000000.000000000.0000000000.00000000000.00000000
6MYB7 60.61959650.36887610.250720460.45727210.00083240310.124873700.084805650.02120141...0.0000000000.000000e+000.00000000000.0000000000.000000000.000000000.000000000.0000000000.00000000000.00000000
In [56]:
head(trans2el)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1HB20 80.298932380.120996440.1779359430.79433332700.00055779570.105357270.2310405640.194003527...0.062266500.165476720.00033059090.0412456840.000000000.000000000.000000000.000000e+000.00000000000.00000000
2AT4G3041080.701067620.101423490.5996441280.56610907060.00056522640.168195411.2239858910.895943563...0.027397260.029917420.00034751720.0362122880.000000000.000000000.000000000.000000e+000.00000000000.00000000
3UPB1 70.855871890.037366550.8185053380.30106698130.00061385030.187423910.0899470900.037037037...0.047322540.000000000.00035517830.0444429490.055555560.046783630.008771930.000000e+000.00057286140.02830553
4BZIP61 70.142348750.078291810.0640569400.59176229530.00042995940.063559160.0687830690.061728395...0.095890410.674290300.00042042170.0621609690.000000000.000000000.000000000.000000e+000.00000000000.00000000
5HAT1 60.017793590.016014230.0017793590.00000000000.00039003650.017116890.0088183420.007054674...0.018679950.473039070.00040622870.0512642270.071637430.062865500.008771930.000000e+000.00051063170.03622616
6AT1G7484060.167259790.101423490.0658362990.00085320440.00053576020.079183050.0529100530.042328042...0.001245330.000000000.00020166860.0039877830.106725150.084795320.021929823.638917e-050.00084617640.04511538
In [57]:
min_max_normalize <- function(data) {
  min_val <- min(data)
  max_val <- max(data)
  normalized_data <- (data - min_val) / (max_val - min_val)
  return(normalized_data)
}
In [58]:
summary(stem2pro$tri_betweenness_centrality)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.00000 0.00000 0.00000 0.02406 0.00000 0.98597 
In [59]:
summary(min_max_normalize(stem2pro$tri_betweenness_centrality))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.0000  0.0000  0.0244  0.0000  1.0000 
In [60]:
ncol(stem2pro)
62
In [61]:
stem2pro <- as.data.frame(cbind(stem2pro[,1],apply(stem2pro[,3:62],2,min_max_normalize)))
pro2trans <- as.data.frame(cbind(pro2trans[,1],apply(pro2trans[,3:62],2,min_max_normalize)))
trans2el <- as.data.frame(cbind(trans2el[,1],apply(trans2el[,3:62],2,min_max_normalize)))
el2el <- as.data.frame(cbind(el2el[,1],apply(el2el[,3:62],2,min_max_normalize)))
el2mat <- as.data.frame(cbind(el2mat[,1],apply(el2mat[,3:62],2,min_max_normalize)))
In [62]:
dat <- stem2pro %>%
full_join(pro2trans, by = "V1") %>%
full_join(trans2el, by = "V1") %>%
full_join(el2el, by = "V1") %>%
full_join(el2mat, by = "V1")
In [63]:
dat[is.na(dat)] <- 0
In [64]:
n <- c('atri_degree_centrality','atri_out_centrality','atri_in_centrality','atri_betweenness_centrality','atri_closeness_centrality','atri_eigenvector_centrality',
       'tri_degree_centrality','tri_out_centrality','tri_in_centrality','tri_betweenness_centrality','tri_closeness_centrality','tri_eigenvector_centrality',
       'lrc_degree_centrality','lrc_out_centrality','lrc_in_centrality','lrc_betweenness_centrality','lrc_closeness_centrality','lrc_eigenvector_centrality',
       'cor_degree_centrality','cor_out_centrality','cor_in_centrality','cor_betweenness_centrality','cor_closeness_centrality','cor_eigenvector_centrality',
       'end_degree_centrality','end_out_centrality','end_in_centrality','end_betweenness_centrality','end_closeness_centrality','end_eigenvector_centrality',
       'per_degree_centrality','per_out_centrality','per_in_centrality','per_betweenness_centrality','per_closeness_centrality','per_eigenvector_centrality',
       'pro_degree_centrality','pro_out_centrality','pro_in_centrality','pro_betweenness_centrality','pro_closeness_centrality','pro_eigenvector_centrality',
       'xyl_degree_centrality','xyl_out_centrality','xyl_in_centrality','xyl_betweenness_centrality','xyl_closeness_centrality','xyl_eigenvector_centrality',
       'phl_degree_centrality','phl_out_centrality','phl_in_centrality','phl_betweenness_centrality','phl_closeness_centrality','phl_eigenvector_centrality',
       'col_degree_centrality','col_out_centrality','col_in_centrality','col_betweenness_centrality','col_closeness_centrality','col_eigenvector_centrality')
In [65]:
colnames(dat) <- c("TF",gsub("$","_1",n), gsub("$","_2",n),gsub("$","_3",n),gsub("$","_4",n),gsub("$","_5",n))
In [66]:
GeneID <- wanted_TFs$GeneID[match(dat$TF, wanted_TFs$Name)]
In [67]:
dat <- cbind(GeneID, dat)
In [68]:
head(dat)
A data.frame: 6 x 302
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_in_centrality_5phl_betweenness_centrality_5phl_closeness_centrality_5phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>
1AT1G54690GAMMA-H2AX0.7198443579766540.382716049382716 0.869257950530035 0.8226522380080680.9279750585492760.9223393872050140.533333333333333 0.143426294820717 ...0.0045871559633027500.4614970067239080.0361027357633705000000
2AT4G16780HB-2 0.1731517509727630.169753086419753 0.120141342756184 0.3317565487858220.5208740587555480.3882998835822120.03589743589743590.0199203187250996...0.0011467889908256900.4598278725320170.0361027357633705000000
3AT4G23750CRF2 0.5175097276264590.5 0.367491166077739 0.7628019245411390.7550521162815180.7726608467290750.753846153846154 0.685258964143426 ...0.0160550458715596 00.6461696937358060.152197951166501 000000
4AT3G44750HDA3 0.5894941634241250.06172839506172841 1 0.9905675793106470.88859191221792 0.915384615384615 0.49800796812749 ...0 00 0 000000
5AT5G23420HMGB6 0.2198443579766540.302469135802469 0.05300353356890460 0.75085417652198 0.5296423766084340.279487179487179 0.290836653386454 ...0 00 0 000000
6AT4G17460HAT1 0.25875486381323 0.166666666666667 0.279151943462898 0.2991867679696740.7205521962917680.5904529706200550.09487179487179490.131474103585657 ...0.0034403669724770600.4813576477863020.0361027357633705000000
In [69]:
numz <- function(x){
    sum(x==0)/length(x)
}
In [70]:
dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric)))
dat$celltype_specificity <- min_max_normalize(apply(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric),1,numz))
dat$weighted_score <- dat$combined_score + dat$celltype_specificity
dat <- dat %>% arrange(desc(weighted_score))
In [71]:
head(dat)
A data.frame: 6 x 305
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5combined_scorecelltype_specificityweighted_score
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><dbl><dbl><dbl>
1AT5G24800BZIP9 0 0 0 0 0 0 0 0 ...0.9915106021042650 0 0 00 0 0.74460640.61206901.356675
2AT3G43430AT3G434300 0 0 0 0 0 0 0 ...0.6357535715151560 0 0 00 0 0.76339600.46982761.233224
3AT3G20840PLT1 0.4474708171206230.2160493827160490.5653710247349820.9639229535550550.8022467695915050.7715092266242590 0 ...0 0.06140350877192980.09975669099756690.002207505518763800.5904094617815740.2390913238518490.56109440.66810341.229198
4AT5G15150HAT7 0 0 0 0 0 0 0.2282051282051280.051792828685259...0 0 0 0 00 0 0.86507230.35344831.218521
5AT5G57620MYB36 0 0 0 0 0 0 0 0 ...0 0 0 0 00 0 0.51763500.68103451.198669
6AT2G45050GATA2 0.8171206225680930.79320987654321 0.5759717314487630.8048000129598730.8346970979683160.9136626786497980.7794871794871790.665338645418327...0 0 0 0 00 0 0.85621370.31465521.170869
In [72]:
write.csv(dat,"TF_GRN_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=FALSE)
In [73]:
dat_genesys <- dat

Load GRN centrality scores for each transition (RAW)¶

In [74]:
stem2pro <- read.csv("./Raw_TF_GRN_centrality_t0-t1_zscore3.csv")
pro2trans <- read.csv("./Raw_TF_GRN_centrality_t1-t3_zscore3.csv")
trans2el <- read.csv("./Raw_TF_GRN_centrality_t3-t5_zscore3.csv")
el2el <- read.csv("./Raw_TF_GRN_centrality_t5-t7_zscore3.csv")
el2mat <- read.csv("./Raw_TF_GRN_centrality_t7-t9_zscore3.csv")
In [75]:
head(stem2pro)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1PLT1 01.07258060.99731180.075268820.308118130.00040845900.15390630.00000000.00000000...0.00000000.000000000.00000000000.00000001.92729590.97831630.948979590.14212083300.00026426810.11516732
2AT4G0023800.61827960.23924730.379032260.111157000.00029869540.12042210.17610060.14465409...0.00000000.000000000.00000000000.00000000.39030610.19387760.196428570.00025249560.00020450340.06845200
3WER 01.17204300.22043010.951612900.097643680.00040694320.15231700.16981130.09119497...0.00000000.000000000.00000000000.00000000.31632650.29464290.021683670.00013520730.00021453600.06484553
4BRON 00.94892470.54838710.400537630.094013560.00034833730.13907060.36477990.35849057...0.00000000.000000000.00000000000.00000001.39285710.78316330.609693880.03607592460.00024421870.11264577
5HDA3 01.13978490.29569890.844086020.086064980.00038583710.14855530.50000000.20440252...0.00000000.000000000.00000000000.00000000.50892860.47448980.034438780.00041702500.00022761660.08153638
6CRF2 00.86827960.21774190.650537630.076580300.00029379980.14006850.19182390.13207547...0.44084280.021740620.00011680120.15475720.60204080.24489800.357142860.00474203090.00020819760.08432017
In [76]:
head(pro2trans)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1GAMMA-H2AX00.713709680.370967740.342741940.87503674.554611e-050.153074010.6457627120.569491525...0.0133470230.011885590.00043320840.069134460.0045351470.0022675740.0022675740.000000e+000.00010060840.002564691
2GATA2 01.225806450.459677420.766129030.83343525.202446e-050.195922610.8152542370.571186441...0.0000000000.000000000.00000000000.000000000.0782312930.0714285710.0068027215.147727e-060.00014644260.026671998
3MYB97 00.050403230.036290320.014112900.82710982.501421e-050.022705130.0084745760.003389831...0.0020533880.000000000.00024027030.009486760.0000000000.0000000000.0000000000.000000e+000.00000000000.000000000
4ATS 00.764112900.207661290.556451610.82702834.461151e-050.171605280.5254237290.213559322...0.0000000000.000000000.00000000000.000000000.0102040820.0079365080.0022675740.000000e+000.00010392900.004417425
5AT5G25470 00.201612900.112903230.088709680.81820634.029434e-050.075575890.0000000000.000000000...0.0000000000.000000000.00000000000.000000000.1541950110.0589569160.0952380953.717894e-010.00015104700.038240868
6AT4G00990 00.078629030.018145160.060483870.81584393.210625e-050.035335630.0000000000.000000000...0.0154004110.000000000.00026759930.015039710.2290249430.1666666670.0623582778.241897e-010.00016868980.054988753
In [77]:
head(trans2el)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1GL2 00.621374050.283969470.337404580.53453320.00021962320.154203470.0000000000.000000000...0.0000000000.000000000.00000000000.0000000000.000000000.000000000.0000000000.000000e+000.00000000000.000000000
2DAR7 00.163358780.116030530.047328240.49409390.00019592320.088740670.0000000000.000000000...0.0000000000.000000000.00000000000.0000000000.022222220.013071900.0091503275.817336e-050.00025975630.007458697
3MYB47 00.029007630.010687020.018320610.49383710.00013776580.015252160.0000000000.000000000...0.0000000000.000000000.00000000000.0000000000.000000000.000000000.0000000000.000000e+000.00000000000.000000000
4AT4G3165000.285496180.140458020.145038170.47442160.00018753310.110174120.0077519380.005813953...0.0000000000.000000000.00000000000.0000000000.000000000.000000000.0000000000.000000e+000.00000000000.000000000
5ATCTH 00.244274810.209160310.035114500.45625040.00021282850.106307780.1976744190.174418605...0.0127077220.033795120.00019842230.0095595770.316339870.167320260.1490196085.197276e-020.00037834890.068248499
6IAA1 00.114503820.071755730.042748090.41804510.00016883570.058109380.0135658910.011627907...0.0078201370.000000000.00021076610.0081775950.041830070.023529410.0183006540.000000e+000.00030859030.015204464
In [78]:
head(el2el)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1WRKY13 00.110694180.037523450.073170730.91344210.00022267740.041895340.0000000000.000000000...00000.000000000.000000000.0000000000.00000e+000.0000000000.00000000
2AT1G6438000.232645400.052532830.180112570.86046850.00025638920.075636980.0093240090.006993007...00000.000000000.000000000.0000000000.00000e+000.0000000000.00000000
3NAC6 00.750469040.264540340.485928710.84804770.00032108210.150266920.0349650350.013986014...00000.000000000.000000000.0000000000.00000e+000.0000000000.00000000
4MC2 00.223264540.039399620.183864920.84029960.00024267890.074227580.0000000000.000000000...00000.000000000.000000000.0000000000.00000e+000.0000000000.00000000
5SOM 00.026266420.007504690.018761730.83626870.00018361370.013733370.0000000000.000000000...00000.054916990.049808430.0051085576.04273e-050.0003011430.02304167
6GL2 00.444652910.262664170.181988740.75560030.00033073040.110958040.0000000000.000000000...00000.000000000.000000000.0000000000.00000e+000.0000000000.00000000
In [79]:
head(el2mat)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1LBD25 00.391862960.130620990.261241970.94727560.00025227620.109888540.0037878790.001893939...00000.000000000.0000000000.0000000000.00000000000.000000000
2LAF1 00.109207710.059957170.049250540.94599350.00023476860.052360070.0000000000.000000000...00000.000000000.0000000000.0000000000.00000000000.000000000
3AT2G4266000.107066380.074946470.032119910.93888950.00019909480.050810130.0000000000.000000000...00000.000000000.0000000000.0000000000.00000000000.000000000
4MEA 00.263383300.132762310.130620990.93519040.00024191820.080434400.0056818180.003787879...00000.000000000.0000000000.0000000000.00000000000.000000000
5IAA1 00.126338330.085653100.040685220.93345800.00024008050.059468270.0000000000.000000000...00000.011904760.0013227510.0105820100.00016544030.006986066
6AT3G2133000.094218420.034261240.059957170.93312720.00020232720.041412640.0000000000.000000000...00000.000000000.0000000000.0000000000.00000000000.000000000
In [80]:
stem2pro <- as.data.frame(cbind(stem2pro[,1],apply(stem2pro[,3:62],2,min_max_normalize)))
pro2trans <- as.data.frame(cbind(pro2trans[,1],apply(pro2trans[,3:62],2,min_max_normalize)))
trans2el <- as.data.frame(cbind(trans2el[,1],apply(trans2el[,3:62],2,min_max_normalize)))
el2el <- as.data.frame(cbind(el2el[,1],apply(el2el[,3:62],2,min_max_normalize)))
el2mat <- as.data.frame(cbind(el2mat[,1],apply(el2mat[,3:62],2,min_max_normalize)))
In [81]:
dat <- stem2pro %>%
full_join(pro2trans, by = "V1") %>%
full_join(trans2el, by = "V1") %>%
full_join(el2el, by = "V1") %>%
full_join(el2mat, by = "V1")
In [82]:
dat[is.na(dat)] <- 0
In [83]:
n <- c('atri_degree_centrality','atri_out_centrality','atri_in_centrality','atri_betweenness_centrality','atri_closeness_centrality','atri_eigenvector_centrality',
       'tri_degree_centrality','tri_out_centrality','tri_in_centrality','tri_betweenness_centrality','tri_closeness_centrality','tri_eigenvector_centrality',
       'lrc_degree_centrality','lrc_out_centrality','lrc_in_centrality','lrc_betweenness_centrality','lrc_closeness_centrality','lrc_eigenvector_centrality',
       'cor_degree_centrality','cor_out_centrality','cor_in_centrality','cor_betweenness_centrality','cor_closeness_centrality','cor_eigenvector_centrality',
       'end_degree_centrality','end_out_centrality','end_in_centrality','end_betweenness_centrality','end_closeness_centrality','end_eigenvector_centrality',
       'per_degree_centrality','per_out_centrality','per_in_centrality','per_betweenness_centrality','per_closeness_centrality','per_eigenvector_centrality',
       'pro_degree_centrality','pro_out_centrality','pro_in_centrality','pro_betweenness_centrality','pro_closeness_centrality','pro_eigenvector_centrality',
       'xyl_degree_centrality','xyl_out_centrality','xyl_in_centrality','xyl_betweenness_centrality','xyl_closeness_centrality','xyl_eigenvector_centrality',
       'phl_degree_centrality','phl_out_centrality','phl_in_centrality','phl_betweenness_centrality','phl_closeness_centrality','phl_eigenvector_centrality',
       'col_degree_centrality','col_out_centrality','col_in_centrality','col_betweenness_centrality','col_closeness_centrality','col_eigenvector_centrality')
In [84]:
colnames(dat) <- c("TF",gsub("$","_1",n), gsub("$","_2",n),gsub("$","_3",n),gsub("$","_4",n),gsub("$","_5",n))
In [85]:
GeneID <- wanted_TFs$GeneID[match(dat$TF, wanted_TFs$Name)]
In [86]:
dat <- cbind(GeneID, dat)
In [87]:
head(dat)
A data.frame: 6 x 302
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_in_centrality_5phl_betweenness_centrality_5phl_closeness_centrality_5phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>
1AT3G20840PLT1 0.9151376146788991 0.07909604519774011 1 1 0 0 ...0 00 0 0.003455425017277120.005633802816901410.001356852103120760 0.3428364984373670.0261636689560327
2AT4G00238AT4G002380.5275229357798160.23989218328841 0.398305084745763 0.3607609820336750.7312737558037590.7824377776955490.1836065573770490.4 ...0 00 0 0 0 0 0 0 0
3AT5G14750WER 1 0.2210242587601081 0.31690339572947 0.9962888359051530.9896731808279780.1770491803278690.252173913043478...0 00 0 0 0 0 0 0 0
4AT1G75710BRON 0.8096330275229360.5498652291105120.42090395480226 0.3051218135641050.8528083779176170.9036055824126130.3803278688524590.991304347826087...0 00 0 0.0400829302004147 0.0746478873239437 0.0067842605156038 0.0001512554199858830.7393889692261330.236949389676998
5AT3G44750HDA3 0.9724770642201840.2964959568733150.887005649717514 0.2793246166870470.9446164435896090.9652317882974980.5213114754098360.565217391304348...0 00 0 0 0 0 0 0 0
6AT4G23750CRF2 0.7408256880733950.21832884097035 0.68361581920904 0.2485419998118710.71928820893187 0.9100894748414170.2 0.365217391304348...0.0042016806722689100.4907171993264310.07313452479373080 0 0 0 0 0
In [88]:
dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric)))
dat$celltype_specificity <- min_max_normalize(apply(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric),1,numz))
dat$weighted_score <- dat$combined_score + dat$celltype_specificity
dat <- dat %>% arrange(desc(weighted_score))
In [89]:
head(dat)
A data.frame: 6 x 305
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5combined_scorecelltype_specificityweighted_score
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><dbl><dbl><dbl>
1AT2G45050GATA2 0.7408256880733950.07277628032345010.8361581920903960.164683472862384 0.8988101777421230.9237954345250791 0.0869565217391304...0 0 0 0 0 0 0 0.89524350.58847741.483721
2AT5G24800BZIP9 0 0 0 0 0 0 0 0 ...0.8931779642824720 0 0 0 0 0 0.74620010.70370371.449904
3AT3G43430AT3G43430 0 0 0 0 0 0 0 0 ...0.4766727005647310 0 0 0 0 0 0.85364000.54732511.400965
4AT1G75710BRON 0.8096330275229360.549865229110512 0.42090395480226 0.305121813564105 0.8528083779176170.9036055824126130.3803278688524590.991304347826087 ...0 0.04008293020041470.07464788732394370.00678426051560380.0001512554199858830.7393889692261330.2369493896769980.75228950.63374491.386034
5AT4G32880HB-8 0 0 0 0 0 0 0 0 ...0.1468250773218620 0 0 0 0 0 0.73711390.63374491.370859
6AT1G54690GAMMA-H2AX0.81651376146789 0.102425876010782 0.8983050847457630.08559872072241560.9243736269139120.9518982419590190.8491803278688520.0869565217391304...0.0509258978637940 0 0 0 0 0 1.00000000.36213991.362140
In [90]:
write.csv(dat,"Raw_TF_GRN_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=FALSE)
In [91]:
dat_raw <- dat

GO terms (Prepare GS)¶

In [92]:
gene_list <- read.table('./gene_list_1108.csv', sep=",", header = TRUE)
In [93]:
exptf <- intersect(gene_list$features, wanted_TFs$GeneID)
length(exptf)
1495
In [94]:
sfun <- read.csv('string_functional_annotations.tsv', sep="\t", header=TRUE)
sann <- read.csv('string_protein_annotations.tsv', sep="\t", header=TRUE)
In [95]:
gsgo1 <- unique(sfun[grep('root|xylem|phloem|procambium|pericycle|vascular|vasculature|stele|tracheary|sieve|trichoblast|atrichoblast|epidermis|epidermal tissue|lateral root cap|root hair|trichome|cortex|endodermis|ground tissue|columella|quiescent center',sfun$term.description, ignore.case=TRUE),]$X.node)
gsgo2 <- unique(sann[grep('root|xylem|phloem|procambium|pericycle|vascular|vasculature|stele|tracheary|sieve|trichoblast|atrichoblast|epidermis|epidermal tissue|lateral root cap|root hair|trichome|cortex|endodermis|ground tissue|columella|quiescent center',sann$domain_summary_url, ignore.case=TRUE),]$X.node)
gsgo <- sort(unique(c(gsgo1, gsgo2)))
In [96]:
#write.csv(data.frame(GeneID=gsgo),"./Gold_Standard_Root_TF_StringDB.csv", quote=FALSE, row.names=FALSE)
In [97]:
length(gsgo)
gsgo
209
  1. 'A0A1I9LNX5'
  2. 'AGL12'
  3. 'AGL16'
  4. 'AHK2'
  5. 'AHK3'
  6. 'AHK4'
  7. 'AIL5'
  8. 'AL6'
  9. 'ANL2'
  10. 'APL'
  11. 'ARF10'
  12. 'ARF16'
  13. 'ARF17'
  14. 'ARF19'
  15. 'ARF7'
  16. 'ARR1'
  17. 'ARR10'
  18. 'ARR12'
  19. 'ARR2'
  20. 'ATHB-13'
  21. 'ATHB-15'
  22. 'ATHB-23'
  23. 'ATHB-8'
  24. 'ATHB-X'
  25. 'ATX1-2'
  26. 'BEH1'
  27. 'BHLH12'
  28. 'BHLH155'
  29. 'BHLH2'
  30. 'BHLH32'
  31. 'BHLH48'
  32. 'BHLH54'
  33. 'BHLH66'
  34. 'BHLH69'
  35. 'BHLH82'
  36. 'BHLH83'
  37. 'BHLH85'
  38. 'BHLH86'
  39. 'BIB'
  40. 'BRM'
  41. 'BZIP19'
  42. 'BZIP23'
  43. 'BZR2'
  44. 'CHC1-2'
  45. 'CHR12'
  46. 'CHR23'
  47. 'CPC'
  48. 'CRF2'
  49. 'DAR2'
  50. 'DOF1.1'
  51. 'DOF2.2'
  52. 'DOF2.4'
  53. 'DOF3.2'
  54. 'DOF3.6'
  55. 'DOF5.1'
  56. 'DOF5.3'
  57. 'DOF5.6'
  58. 'DOT2'
  59. 'DPB'
  60. 'E2FB'
  61. 'EFM'
  62. 'ERF055'
  63. 'ERF104'
  64. 'ET2'
  65. 'ETC1'
  66. 'ETR1'
  67. 'F13K3.12'
  68. 'F24O1.3'
  69. 'F27L4.4'
  70. 'F2I11.230'
  71. 'FEZ'
  72. 'GAI'
  73. 'GALT2'
  74. 'GATA12'
  75. 'GATA23'
  76. 'GIF1'
  77. 'GIS3'
  78. 'GL2'
  79. 'GL3'
  80. 'GRF2-2'
  81. 'GRF3-2'
  82. 'GTL1'
  83. 'HAG1'
  84. 'HAT2'
  85. 'HAT4'
  86. 'HDG11'
  87. 'HDG12'
  88. 'HDG2'
  89. 'HDT1'
  90. 'HHO1'
  91. 'HHO2'
  92. 'HHO3'
  93. 'HHO6'
  94. 'HRS1'
  95. 'HSFA4C'
  96. 'IAA12'
  97. 'IAA14'
  98. 'IAA20'
  99. 'IAA28'
  100. 'IAA3'
  101. 'IAA31'
  102. 'IAA8'
  103. 'IDD4'
  104. 'IDD6'
  105. 'IWS1'
  106. 'JKD'
  107. 'JMJ14'
  108. 'JMJ25'
  109. 'JMJ30'
  110. 'JMJ32'
  111. 'K15E6.5'
  112. 'KAN1'
  113. 'KNAT7'
  114. 'KUA1'
  115. 'LBD15'
  116. 'LBD16'
  117. 'LBD18'
  118. 'LBD29'
  119. 'LBD3'
  120. 'LBD30'
  121. 'LBD4'
  122. 'LDL1'
  123. 'LEP'
  124. 'LHW'
  125. 'LRP1'
  126. 'MAMYB'
  127. 'MGP'
  128. 'MIF1'
  129. 'MTERF9'
  130. 'MYB12'
  131. 'MYB124'
  132. 'MYB20'
  133. 'MYB23'
  134. 'MYB32'
  135. 'MYB36'
  136. 'MYB43'
  137. 'MYB46'
  138. 'MYB52'
  139. 'MYB60'
  140. 'MYB61'
  141. 'MYB7'
  142. 'MYB83'
  143. 'MYB85'
  144. 'MYB86'
  145. 'MYB88'
  146. 'MYC3'
  147. 'MYC4'
  148. 'NAA10'
  149. 'NAC003'
  150. 'NAC005'
  151. 'NAC007'
  152. 'NAC010'
  153. 'NAC026'
  154. 'NAC030'
  155. 'NAC037'
  156. 'NAC043'
  157. 'NAC045'
  158. 'NAC056'
  159. 'NAC075'
  160. 'NAC076'
  161. 'NAC083'
  162. 'NAC084'
  163. 'NAC086'
  164. 'NAC101'
  165. 'NAC104'
  166. 'NAC105'
  167. 'NAC92'
  168. 'NUC'
  169. 'PKL'
  170. 'PLT1'
  171. 'PLT2'
  172. 'PRE3'
  173. 'Q1G3Q4_ARATH'
  174. 'RAP2-11'
  175. 'RAP2-12'
  176. 'RAV1'
  177. 'RBR1'
  178. 'REF6'
  179. 'REV'
  180. 'RGA'
  181. 'SCL22'
  182. 'SCL27'
  183. 'SCL6'
  184. 'SCR'
  185. 'SCRM'
  186. 'SHR'
  187. 'SMB'
  188. 'SOG1'
  189. 'T15F16.14'
  190. 'T2I1.110'
  191. 'TCP14'
  192. 'TCP15'
  193. 'TCP9'
  194. 'TCX2'
  195. 'TCX3'
  196. 'TRY'
  197. 'TSO1'
  198. 'TTG1'
  199. 'UPB1'
  200. 'WER'
  201. 'WIP2-2'
  202. 'WLIM2B'
  203. 'WOX14'
  204. 'WRKY13'
  205. 'WRKY44'
  206. 'WRKY75'
  207. 'ZFP5'
  208. 'ZFP6'
  209. 'ZFP8'
In [98]:
gsgo <- gsub(",.*$","",gsub("^.*ath:","",sann[match(gsgo, sann$X.node),]$other_names_and_aliases))
gsgo[which(gsgo=='831248')]='AT5G14000'
gsgo
  1. 'AT3G53680'
  2. 'AT1G71692'
  3. 'AT3G57230'
  4. 'AT5G35750'
  5. 'AT1G27320'
  6. 'AT2G01830'
  7. 'AT5G57390'
  8. 'AT2G02470'
  9. 'AT4G00730'
  10. 'AT1G79430'
  11. 'AT2G28350'
  12. 'AT4G30080'
  13. 'AT1G77850'
  14. 'AT1G19220'
  15. 'AT5G20730'
  16. 'AT3G16857'
  17. 'AT4G31920'
  18. 'AT2G25180'
  19. 'AT4G16110'
  20. 'AT1G69780'
  21. 'AT1G52150'
  22. 'AT1G26960'
  23. 'AT4G32880'
  24. 'AT1G70920'
  25. 'AT2G31650'
  26. 'AT3G50750'
  27. 'AT4G00480'
  28. 'AT2G31280'
  29. 'AT1G63650'
  30. 'AT3G25710'
  31. 'AT2G42300'
  32. 'AT1G27740'
  33. 'AT2G24260'
  34. 'AT4G30980'
  35. 'AT5G58010'
  36. 'AT1G66470'
  37. 'AT4G33880'
  38. 'AT5G37800'
  39. 'AT3G45260'
  40. 'AT2G46020'
  41. 'AT4G35040'
  42. 'AT2G16770'
  43. 'AT1G19350'
  44. 'AT5G14170'
  45. 'AT3G06010'
  46. 'AT5G19310'
  47. 'AT2G46410'
  48. 'AT4G23750'
  49. 'AT2G39830'
  50. 'AT1G07640'
  51. 'AT2G28810'
  52. 'AT2G37590'
  53. 'AT3G45610'
  54. 'AT3G55370'
  55. 'AT5G02460'
  56. 'AT5G60200'
  57. 'AT5G62940'
  58. 'AT5G16780'
  59. 'AT5G03415'
  60. 'AT5G22220'
  61. 'AT2G03500'
  62. 'AT1G36060'
  63. 'AT5G61600'
  64. 'AT5G56780'
  65. 'AT1G01380'
  66. 'AT1G66340'
  67. 'AT2G36720'
  68. 'AT1G62310'
  69. 'AT2G23780'
  70. 'AT5G11340'
  71. 'AT1G26870'
  72. 'AT1G14920'
  73. 'AT4G21060'
  74. 'AT5G25830'
  75. 'AT5G26930'
  76. 'AT5G28640'
  77. 'AT1G68360'
  78. 'AT1G79840'
  79. 'AT5G41315'
  80. 'AT4G37740'
  81. 'AT2G36400'
  82. 'AT1G33240'
  83. 'AT3G54610'
  84. 'AT5G47370'
  85. 'AT4G16780'
  86. 'AT1G73360'
  87. 'AT1G17920'
  88. 'AT1G05230'
  89. 'AT3G44750'
  90. 'AT3G25790'
  91. 'AT1G68670'
  92. 'AT1G25550'
  93. 'AT1G49560'
  94. 'AT1G13300'
  95. 'AT5G45710'
  96. 'AT1G04550'
  97. 'AT4G14550'
  98. 'AT2G46990'
  99. 'AT5G25890'
  100. 'AT1G04240'
  101. 'AT3G17600'
  102. 'AT2G22670'
  103. 'AT2G02080'
  104. 'AT1G14580'
  105. 'AT1G32130'
  106. 'AT5G03150'
  107. 'AT4G20400'
  108. 'AT3G07610'
  109. 'AT3G20810'
  110. 'AT3G45880'
  111. 'AT5G38840'
  112. 'AT5G16560'
  113. 'AT1G62990'
  114. 'AT5G47390'
  115. 'AT2G40470'
  116. 'AT2G42430'
  117. 'AT2G45420'
  118. 'AT3G58190'
  119. 'AT1G16530'
  120. 'AT4G00220'
  121. 'AT1G31320'
  122. 'AT1G62830'
  123. 'AT5G13910'
  124. 'AT2G27230'
  125. 'AT5G12330'
  126. 'AT5G45420'
  127. 'AT1G03840'
  128. 'AT1G74660'
  129. 'AT5G55580'
  130. 'AT2G47460'
  131. 'AT1G14350'
  132. 'AT1G66230'
  133. 'AT5G40330'
  134. 'AT4G34990'
  135. 'AT5G57620'
  136. 'AT5G16600'
  137. 'AT5G12870'
  138. 'AT1G17950'
  139. 'AT1G08810'
  140. 'AT1G09540'
  141. 'AT2G16720'
  142. 'AT3G08500'
  143. 'AT4G22680'
  144. 'AT5G26660'
  145. 'AT2G02820'
  146. 'AT5G46760'
  147. 'AT4G17880'
  148. 'AT5G13780'
  149. 'AT1G02220'
  150. 'AT1G02250'
  151. 'AT1G12260'
  152. 'AT1G28470'
  153. 'AT1G62700'
  154. 'AT1G71930'
  155. 'AT2G18060'
  156. 'AT2G46770'
  157. 'AT3G03200'
  158. 'AT3G15510'
  159. 'AT4G29230'
  160. 'AT4G36160'
  161. 'AT5G13180'
  162. 'AT5G14000'
  163. 'AT5G17260'
  164. 'AT5G62380'
  165. 'AT5G64530'
  166. 'AT5G66300'
  167. 'AT5G39610'
  168. 'AT5G44160'
  169. 'AT2G25170'
  170. 'AT3G20840'
  171. 'AT1G51190'
  172. 'AT1G74500'
  173. 'AT2G12646'
  174. 'AT5G19790'
  175. 'AT1G53910'
  176. 'AT1G13260'
  177. 'AT3G12280'
  178. 'AT3G48430'
  179. 'AT5G60690'
  180. 'AT2G01570'
  181. 'AT3G60630'
  182. 'AT2G45160'
  183. 'AT4G00150'
  184. 'AT3G54220'
  185. 'AT3G26744'
  186. 'AT4G37650'
  187. 'AT1G79580'
  188. 'AT1G25580'
  189. 'AT4G08455'
  190. 'AT5G07400'
  191. 'AT3G47620'
  192. 'AT1G69690'
  193. 'AT2G45680'
  194. 'AT4G14770'
  195. 'AT3G22760'
  196. 'AT5G53200'
  197. 'AT3G22780'
  198. 'AT5G24520'
  199. 'AT2G47270'
  200. 'AT5G14750'
  201. 'AT3G57670'
  202. 'AT3G55770'
  203. 'AT1G20700'
  204. 'AT4G39410'
  205. 'AT2G37260'
  206. 'AT5G13080'
  207. 'AT1G10480'
  208. 'AT1G67030'
  209. 'AT2G41940'
In [99]:
sann[which(sann$X.node=="HAT7"),]
A data.frame: 1 x 5
X.nodeidentifierdomain_summary_urlannotationother_names_and_aliases
<chr><chr><chr><chr><chr>
668HAT73702.Q00466Homeobox-leucine zipper protein HAT7; Probable transcription factor.https://smart.embl.de/smart/DDvec.cgi?smart=314:HOX(113|174)+831367,AT5G15150,ATHB-3,At5g15150,F8M21_40,HAT7,HAT7_ARATH,HB-3,HD-ZIP protein 7,HD-ZIP protein ATHB-3,Homeobox 3,Homeobox-leucine zipper protein,Homeobox-leucine zipper protein HAT7,Homeodomain transcription factor ATHB-3,Homeodomain-leucine zipper protein HAT7,NM_121519.3,NP_568309,NP_568309.2,Q00466,Q0WNS2,Q9LXG6,ath:AT5G15150
In [100]:
sann[grep("831248",sann$other_names_and_aliases, ignore.case = TRUE),]
A data.frame: 1 x 5
X.nodeidentifierdomain_summary_urlannotationother_names_and_aliases
<chr><chr><chr><chr><chr>
980NAC0843702.A0A1P8BAC2NAC domain containing protein 84.https://smart.embl.de/smart/DDvec.cgi?smart=262:Pfam_NAM(16|196)+831248,A0A1P8BAC2,A0A1P8BAC2_ARATH,At5g14000,MAC12.3,MAC12_3,NAC domain containing protein 84,NAC084,NM_001343305.1,NP_001330278.1,anac084

R50¶

In [101]:
r50 <- 105
numz <- function(x){
    sum(x==0)/length(x)
}

GeneSys¶

In [102]:
genesys <- dat_genesys
In [103]:
run_r50_genesys <- function(x){
    genesys$combined_score <- min_max_normalize(rowSums(apply(genesys[,grep(x,colnames(genesys))],2,as.numeric)))
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [47]:
## all cell type : in centrality + celltype & dev stage specificity
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("in_centrality",colnames(dat))],2,as.numeric)))
#dat$celltype_specificity <- min_max_normalize(apply(apply(dat[,grep("in_centrality",colnames(dat))],2,as.numeric),1,numz))
#dat$weighted_score <- dat$combined_score + dat$celltype_specificity
#dat <- dat %>% arrange(desc(weighted_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}

Raw¶

In [104]:
raw <- dat_raw
In [105]:
run_r50_raw <- function(x){
    raw$combined_score <- min_max_normalize(rowSums(apply(raw[,grep(x,colnames(raw))],2,as.numeric)))
    raw <- raw %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(raw))){
        if (raw$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}

CellOracle¶

In [106]:
prepros <- function(x){
    dat <- read.csv(x)
    #dat <- dat %>% filter(role=="Connector Hub") 
    dat <- dat[,c(1, grep("centrality",colnames(dat)), 22)]
    return(dat)
}
In [107]:
atri <- prepros("../celloracle/atrichoblast_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
tri <- prepros("../celloracle/trichoblast_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
lrc <- prepros("../celloracle/lrc_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
cor <- prepros("../celloracle/cortex_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
end <- prepros("../celloracle/endodermis_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
per <- prepros("../celloracle/pericycle_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
pro <- prepros("../celloracle/procambium_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
xyl <- prepros("../celloracle/xylem_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
phl <- prepros("../celloracle/phloem_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
col <- prepros("../celloracle/columella_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
In [108]:
dat <- rbind(atri, tri, lrc, cor, end, per, pro, xyl, phl, col)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))
In [109]:
head(dat)
A data.frame: 6 x 7
GeneIDdegree_centralityin_centralityout_centralitybetweenness_centralitycloseness_centralityeigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl>
1AT1G010100.08493939980.0653179640.0817359542.592974e-020.36436924120.068339145
2AT1G010300.00095420210.0000000000.0044475680.000000e+000.00034497730.003632920
3AT1G012600.02334381320.0000000000.0335650690.000000e+000.08720810850.016136854
4AT1G013500.02934683470.1343783560.0000000000.000000e+000.00000000000.017764785
5AT1G013800.00356146610.0054922450.0045731497.240465e-050.08528539040.003752290
6AT1G016400.00604418420.0232158000.0000000000.000000e+000.00000000000.006672674
In [110]:
celloracle <- dat
In [111]:
run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [54]:
## all cell type : degree centrality + out centrality + in centrality + betweenness centrality + closeness + eigenvector
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric)))
#dat <- dat %>% arrange(desc(combined_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}
In [55]:
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("betweenness_centrality|celltype_specificity",colnames(dat))],2,as.numeric)))
#dat <- dat %>% arrange(desc(combined_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}

DE (Root_Atlas)¶

In [112]:
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
In [113]:
de <- de %>% arrange(pct.diff_rank) %>% arrange(avg_diff_rank)%>% arrange(myAUC_rank)%>% arrange(combined_rank)
In [114]:
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
In [115]:
head(de)
A data.frame: 6 x 14
myAUCavg_diffpowerpct.1pct.2celltypepseudotime.bingene.IDgene.namepct.diffpct.diff_rankavg_diff_rankmyAUC_rankcombined_rank
<dbl><dbl><dbl><dbl><dbl><chr><chr><chr><chr><dbl><int><int><int><int>
130.9011.9858250.8020.9590.287EndodermisT4AT5G13910LEP 0.672 2 411
400.9342.8208100.8680.9000.155ProcambiumT0AT1G54690HTA3 0.745 23521
510.8412.3515950.6820.8810.297ProcambiumT1AT1G25560TEM1 0.584 11131
580.9793.7991260.9581.0000.046Xylem T1AT4G22680MYB85 0.954 1 741
630.9454.6664020.8900.7650.054Phloem T2AT3G60530GATA4 0.71135 151
660.8712.6230280.7420.8770.242ProcambiumT2AT1G66600WRKY630.635 1 551
In [116]:
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
In [117]:
head(dat)
A tibble: 6 x 5
GeneIDcombined_rankmyAUC_rankpct.diff_rankavg_diff_rank
<chr><dbl><dbl><dbl><dbl>
AT1G66600 6.50000019.5000023.0000011.50000
AT5G58010 8.333333 9.00000 7.0000016.00000
AT1G13600 9.50000042.0000034.5000019.50000
AT4G3726012.33333310.3333320.3333341.66667
AT1G2668013.00000073.0000037.0000078.00000
AT1G6166013.00000019.6666717.3333338.33333
In [118]:
de <- dat
In [119]:
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}

Plot r50 with ranked by different centrality¶

In [120]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [133]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","Raw degree centrality", "Raw out centrality", "Raw in centrality", "Raw betweenness centrality", 
                 "Raw closeness centrality", "Raw eigenvector centrality", "CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_raw('degree_centrality'),run_r50_raw('out_centrality'),run_r50_raw('in_centrality'),
                 run_r50_raw('betweenness_centrality'),run_r50_raw('closeness_centrality'),run_r50_raw('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [134]:
toplt
A data.frame: 22 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 386.000
GeneSys out centrality 404.000
GeneSys in centrality 371.000
GeneSys betweenness centrality 367.000
GeneSys closeness centrality 735.000
GeneSys eigenvector centrality 461.000
Raw degree centrality 411.000
Raw out centrality 475.000
Raw in centrality 387.000
Raw betweenness centrality 446.000
Raw closeness centrality 879.000
Raw eigenvector centrality 534.000
CellOracle degree centrality 479.000
CellOracle out centrality 469.000
CellOracle in centrality 461.000
CellOracle betweenness centrality413.000
CellOracle closeness centrality 505.000
CellOracle eigenvector centrality488.000
DE myAUC rank 484.000
DE pct diff rank 495.000
DE avg diff rank 472.000
Expressed TFs permutation 748.623
In [135]:
options(repr.plot.width=10, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [136]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("Raw",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation", "DE", "CellOracle", "Raw", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=8, repr.plot.height=5)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.4)+ 
  labs(title="TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

R50 for Tissue specific TFs¶

Stele (xylem, phloem, procambium)¶

In [137]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,5]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'APL'
  2. 'ATHB-8'
  3. 'BHLH48'
  4. 'DAR2'
  5. 'DOF5.3'
  6. 'DOF5.6'
  7. 'DOT2'
  8. 'ERF104'
  9. 'ET2'
  10. 'GATA12'
  11. 'KAN1'
  12. 'KNAT7'
  13. 'LBD15'
  14. 'LBD18'
  15. 'LBD30'
  16. 'LBD4'
  17. 'LHW'
  18. 'MYB20'
  19. 'MYB32'
  20. 'MYB43'
  21. 'MYB46'
  22. 'MYB52'
  23. 'MYB61'
  24. 'MYB7'
  25. 'MYB83'
  26. 'MYB85'
  27. 'NAC005'
  28. 'NAC007'
  29. 'NAC010'
  30. 'NAC026'
  31. 'NAC030'
  32. 'NAC037'
  33. 'NAC043'
  34. 'NAC045'
  35. 'NAC075'
  36. 'NAC076'
  37. 'NAC083'
  38. 'NAC086'
  39. 'NAC101'
  40. 'NAC104'
  41. 'NAC105'
  42. 'REV'
  43. 'WOX14'
In [138]:
length(gsgo)
43
In [139]:
r50 <- 22
In [140]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('xyl_',x,'|phl_',x,'|pro_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [141]:
## Define raw
run_r50_raw <- function(x){
    raw$ct_score <- min_max_normalize(rowSums(apply(raw[,grep(paste0('xyl_',x,'|phl_',x,'|pro_',x),colnames(raw))],2,as.numeric)))
    raw$combined_score <- raw$ct_score
    
    raw <- raw %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(raw))){
        if (raw$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [142]:
## Define celloracle
dat <- rbind(pro, xyl, phl)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [143]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Xylem"|celltype=="Phloem"|celltype=="Procambium")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [144]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [145]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","Raw degree centrality", "Raw out centrality", "Raw in centrality", "Raw betweenness centrality", 
                 "Raw closeness centrality", "Raw eigenvector centrality", "CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_raw('degree_centrality'),run_r50_raw('out_centrality'),run_r50_raw('in_centrality'),
                 run_r50_raw('betweenness_centrality'),run_r50_raw('closeness_centrality'),run_r50_raw('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [146]:
toplt
A data.frame: 22 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 99.000
GeneSys out centrality 173.000
GeneSys in centrality 95.000
GeneSys betweenness centrality 117.000
GeneSys closeness centrality 583.000
GeneSys eigenvector centrality 178.000
Raw degree centrality 128.000
Raw out centrality 211.000
Raw in centrality 101.000
Raw betweenness centrality 171.000
Raw closeness centrality 847.000
Raw eigenvector centrality 212.000
CellOracle degree centrality 288.000
CellOracle out centrality 255.000
CellOracle in centrality 190.000
CellOracle betweenness centrality154.000
CellOracle closeness centrality 337.000
CellOracle eigenvector centrality252.000
DE myAUC rank 275.000
DE pct diff rank 302.000
DE avg diff rank 245.000
Expressed TFs permutation 747.726
In [148]:
options(repr.plot.width=10, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Stele-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [150]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("Raw",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation", "DE", "CellOracle", "Raw", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=8, repr.plot.height=5)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.4)+ 
  labs(title="Stele-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Epidermis¶

In [165]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,6]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'AGL16'
  2. 'AL6'
  3. 'ANL2'
  4. 'BHLH12'
  5. 'BHLH2'
  6. 'BHLH32'
  7. 'BHLH54'
  8. 'BHLH66'
  9. 'BHLH69'
  10. 'BHLH82'
  11. 'BHLH83'
  12. 'BHLH85'
  13. 'BHLH86'
  14. 'CPC'
  15. 'E2FB'
  16. 'ETC1'
  17. 'GALT2'
  18. 'GIS3'
  19. 'GL2'
  20. 'GL3'
  21. 'GTL1'
  22. 'HDG11'
  23. 'HDG12'
  24. 'HDG2'
  25. 'JMJ25'
  26. 'MAMYB'
  27. 'MYB124'
  28. 'MYB23'
  29. 'MYB86'
  30. 'MYB88'
  31. 'MYC3'
  32. 'MYC4'
  33. 'RBR1'
  34. 'SCL22'
  35. 'SCL27'
  36. 'SCL6'
  37. 'SCRM'
  38. 'TCX2'
  39. 'TCX3'
  40. 'TRY'
  41. 'TSO1'
  42. 'TTG1'
  43. 'WER'
  44. 'WRKY44'
  45. 'WRKY75'
  46. 'ZFP5'
  47. 'ZFP6'
  48. 'ZFP8'
In [166]:
length(gsgo)
r50 <- 24
48
In [167]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('atri_',x,'|tri_',x,'|lrc_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [168]:
## Define raw
run_r50_raw <- function(x){
    raw$ct_score <- min_max_normalize(rowSums(apply(raw[,grep(paste0('atri_',x,'|tri_',x,'|lrc_',x),colnames(raw))],2,as.numeric)))
    raw$combined_score <- raw$ct_score
    
    raw <- raw %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(raw))){
        if (raw$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [169]:
## Define celloracle
dat <- rbind(atri, tri, lrc)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [156]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Atrichoblast"|celltype=="Trichoblast"|celltype=="Lateral Root Cap")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [157]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [173]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","Raw degree centrality", "Raw out centrality", "Raw in centrality", "Raw betweenness centrality", 
                 "Raw closeness centrality", "Raw eigenvector centrality", "CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_raw('degree_centrality'),run_r50_raw('out_centrality'),run_r50_raw('in_centrality'),
                 run_r50_raw('betweenness_centrality'),run_r50_raw('closeness_centrality'),run_r50_raw('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), 999,999,999,mean(R50_permutation)))
In [174]:
toplt
A data.frame: 22 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 284.000
GeneSys out centrality 309.000
GeneSys in centrality 299.000
GeneSys betweenness centrality 284.000
GeneSys closeness centrality 324.000
GeneSys eigenvector centrality 254.000
Raw degree centrality 289.000
Raw out centrality 267.000
Raw in centrality 294.000
Raw betweenness centrality 383.000
Raw closeness centrality 560.000
Raw eigenvector centrality 325.000
CellOracle degree centrality 391.000
CellOracle out centrality 365.000
CellOracle in centrality 455.000
CellOracle betweenness centrality304.000
CellOracle closeness centrality 351.000
CellOracle eigenvector centrality392.000
DE myAUC rank 999.000
DE pct diff rank 999.000
DE avg diff rank 999.000
Expressed TFs permutation 727.992
In [176]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Epidermis-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [178]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("Raw",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("DE","Expressed TFs permutation", "CellOracle", "Raw", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=8, repr.plot.height=5)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.4)+ 
  labs(title="Epidermis-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

R50 for celltype specific¶

Xylem¶

In [179]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,7]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'APL'
  2. 'ATHB-8'
  3. 'BHLH48'
  4. 'ET2'
  5. 'KNAT7'
  6. 'LBD18'
  7. 'LBD30'
  8. 'LHW'
  9. 'MYB20'
  10. 'MYB32'
  11. 'MYB43'
  12. 'MYB46'
  13. 'MYB52'
  14. 'MYB61'
  15. 'MYB7'
  16. 'MYB83'
  17. 'MYB85'
  18. 'NAC005'
  19. 'NAC007'
  20. 'NAC010'
  21. 'NAC026'
  22. 'NAC030'
  23. 'NAC037'
  24. 'NAC043'
  25. 'NAC076'
  26. 'NAC083'
  27. 'NAC101'
  28. 'NAC104'
  29. 'NAC105'
  30. 'REV'
In [180]:
length(gsgo)
r50 <- 15
30
In [181]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('xyl_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [182]:
## Define genesys
run_r50_raw <- function(x){
    raw$ct_score <- min_max_normalize(rowSums(apply(raw[,grep(paste0('xyl_',x),colnames(raw))],2,as.numeric)))
    raw$combined_score <- raw$ct_score
    
    raw <- raw %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(raw))){
        if (raw$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [183]:
## Define celloracle
dat <- rbind(xyl)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [184]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Xylem")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [185]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [186]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","Raw degree centrality", "Raw out centrality", "Raw in centrality", "Raw betweenness centrality", 
                 "Raw closeness centrality", "Raw eigenvector centrality", "CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_raw('degree_centrality'),run_r50_raw('out_centrality'),run_r50_raw('in_centrality'),
                 run_r50_raw('betweenness_centrality'),run_r50_raw('closeness_centrality'),run_r50_raw('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [187]:
toplt
A data.frame: 22 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 33.000
GeneSys out centrality 60.000
GeneSys in centrality 28.000
GeneSys betweenness centrality 74.000
GeneSys closeness centrality 49.000
GeneSys eigenvector centrality 53.000
Raw degree centrality 35.000
Raw out centrality 41.000
Raw in centrality 34.000
Raw betweenness centrality 92.000
Raw closeness centrality 53.000
Raw eigenvector centrality 36.000
CellOracle degree centrality 90.000
CellOracle out centrality 88.000
CellOracle in centrality 65.000
CellOracle betweenness centrality 50.000
CellOracle closeness centrality 135.000
CellOracle eigenvector centrality 62.000
DE myAUC rank 130.000
DE pct diff rank 133.000
DE avg diff rank 108.000
Expressed TFs permutation 723.582
In [189]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Xylem-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [190]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6),rep("Raw",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation","DE", "CellOracle", "Raw", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=8, repr.plot.height=5)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.4)+ 
  labs(title="Xylem-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Trichoblast¶

In [191]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,8]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'AL6'
  2. 'ANL2'
  3. 'BHLH12'
  4. 'BHLH2'
  5. 'BHLH32'
  6. 'BHLH54'
  7. 'BHLH66'
  8. 'BHLH69'
  9. 'BHLH82'
  10. 'BHLH83'
  11. 'BHLH85'
  12. 'BHLH86'
  13. 'CPC'
  14. 'E2FB'
  15. 'ETC1'
  16. 'GALT2'
  17. 'GIS3'
  18. 'GL2'
  19. 'GL3'
  20. 'GTL1'
  21. 'HDG11'
  22. 'HDG12'
  23. 'HDG2'
  24. 'MAMYB'
  25. 'MYB23'
  26. 'MYB86'
  27. 'RBR1'
  28. 'SCL22'
  29. 'SCL27'
  30. 'SCL6'
  31. 'TRY'
  32. 'TTG1'
  33. 'WER'
  34. 'ZFP5'
  35. 'ZFP6'
  36. 'ZFP8'
In [192]:
length(gsgo)
r50 <- 18
36
In [193]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('^tri_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [194]:
## Define raw
run_r50_raw <- function(x){
    raw$ct_score <- min_max_normalize(rowSums(apply(raw[,grep(paste0('^tri_',x),colnames(raw))],2,as.numeric)))
    raw$combined_score <- raw$ct_score
    
    raw <- raw %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(raw))){
        if (raw$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [195]:
## Define celloracle
dat <- rbind(tri)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [196]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Trichoblast")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [197]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [198]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","Raw degree centrality", "Raw out centrality", "Raw in centrality", "Raw betweenness centrality", 
                 "Raw closeness centrality", "Raw eigenvector centrality", "CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_raw('degree_centrality'),run_r50_raw('out_centrality'),run_r50_raw('in_centrality'),
                 run_r50_raw('betweenness_centrality'),run_r50_raw('closeness_centrality'),run_r50_raw('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), 999,999,999,mean(R50_permutation)))
In [199]:
toplt
A data.frame: 22 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 189.000
GeneSys out centrality 217.000
GeneSys in centrality 212.000
GeneSys betweenness centrality 262.000
GeneSys closeness centrality 271.000
GeneSys eigenvector centrality 194.000
Raw degree centrality 385.000
Raw out centrality 326.000
Raw in centrality 411.000
Raw betweenness centrality 268.000
Raw closeness centrality 449.000
Raw eigenvector centrality 426.000
CellOracle degree centrality 508.000
CellOracle out centrality 476.000
CellOracle in centrality 425.000
CellOracle betweenness centrality339.000
CellOracle closeness centrality 449.000
CellOracle eigenvector centrality501.000
DE myAUC rank 999.000
DE pct diff rank 999.000
DE avg diff rank 999.000
Expressed TFs permutation 722.387
In [200]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Trichoblast-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [202]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("Raw",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("DE","Expressed TFs permutation", "CellOracle", "Raw", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=8, repr.plot.height=5)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.4)+ 
  labs(title="Trichoblast-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Plotting¶

In [110]:
dat <- genesys
In [111]:
plot_heatmap <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = TRUE, name = paste0(gene,"\n","weighted","\n","network","\n","centrality"),
            col = col_fun, column_title = paste0(str_split_i(centrality,"_",1),"\n",str_split_i(centrality,"_",2)), column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [112]:
plot_heatmap2 <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = "out degree \n centrality", column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [113]:
plot_heatmap3 <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1), name = paste0("unweighted","\n","network","\n","centrality"),
            col = col_fun, column_title = "in degree \n centrality", column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [114]:
plot_all_centrality <- function(gene){
    options(repr.plot.width=10, repr.plot.height=6)
    plot_heatmap(gene,"betweenness_centrality") + plot_heatmap2(gene,"out_centrality") + plot_heatmap3(gene,"in_centrality")
}
In [115]:
plot_all_centrality("TTG1")
In [116]:
plot_all_centrality("CPC")
In [117]:
plot_all_centrality("SHR")
In [118]:
plot_all_centrality("SCR")
In [120]:
plot_all_centrality("BLJ")
In [121]:
plot_all_centrality("JKD")
In [122]:
plot_all_centrality("MYB36")
In [123]:
plot_all_centrality("RVN")
In [124]:
plot_all_centrality("MGP")
In [125]:
plot_all_centrality("NUC")
In [126]:
plot_all_centrality("WER")
In [127]:
## HAT7
plot_all_centrality("HAT7")
In [128]:
## GATA10
plot_all_centrality("GATA10")
In [129]:
## GATA11
plot_all_centrality("GATA11")
In [130]:
plot_all_centrality("AN3")
In [131]:
plot_all_centrality("GL2")
In [132]:
plot_all_centrality("LBD15")
In [133]:
plot_all_centrality <- function(gene){
    options(repr.plot.width=8, repr.plot.height=4)
    plot_heatmap(gene,"betweenness_centrality") + plot_heatmap2(gene,"out_centrality") + plot_heatmap3(gene,"in_centrality")
}
In [134]:
plot_all_centrality("SHR")
In [135]:
plot_all_centrality("WER")

Rank by betweenness centrality, out-degree centrality, in-degree centrality and degree centrality¶

In [136]:
plot_bc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("betweenness_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [137]:
plot_oc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("out_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [138]:
plot_ic <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("in_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [139]:
plot_dc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("degree_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [140]:
plot_blank <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("betweenness_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('white',"white", "white"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, show_row_names = TRUE
       )
}
In [141]:
# Combine the top three centralies 
sub <- dat[,grep("betweenness_centrality|in_centrality|out_centrality",colnames(dat))]
sub <- as.data.frame(sapply(sub, as.numeric))
rownames(sub) <- dat$TF
In [142]:
head(sub)
A data.frame: 6 x 150
atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1tri_out_centrality_1tri_in_centrality_1tri_betweenness_centrality_1lrc_out_centrality_1lrc_in_centrality_1lrc_betweenness_centrality_1cor_out_centrality_1...pro_betweenness_centrality_5xyl_out_centrality_5xyl_in_centrality_5xyl_betweenness_centrality_5phl_out_centrality_5phl_in_centrality_5phl_betweenness_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
BZIP90.00000000.00000000.0000000.000000000.00000000.00000000.00000000.00000000.00000000.000000000...0.92106770000.84403670.84633030.20322630.000000000.0000000000
AT3G434300.00000000.00000000.0000000.000000000.00000000.00000000.00000000.00000000.00000000.002673797...0.50529690000.23509170.10894500.11056470.000000000.0000000000
PLT10.21604940.56537100.9639230.000000000.00000000.00000000.15686271.00000000.98688550.385026738...0.00000000000.00000000.00000000.00000000.099756690.0022075060
HAT70.00000000.00000000.0000000.051792830.32758620.83173370.00000000.00000000.00000000.024064171...0.00000000000.00000000.00000000.00000000.000000000.0000000000
MYB360.00000000.00000000.0000000.000000000.00000000.00000000.00000000.00000000.00000000.114973262...0.00000000000.00000000.00000000.00000000.000000000.0000000000
GATA20.79320990.57597170.8048000.665338650.59051720.89202870.85918000.98025131.00000000.553475936...0.00000000000.00000000.00000000.00000000.000000000.0000000000
In [143]:
bc_rank <- data.frame(all=rowSums(sub),atri=rowSums(sub[,grep("^atri_",colnames(sub))]),tri=rowSums(sub[,grep("^tri_",colnames(sub))])
                     ,cor=rowSums(sub[,grep("^cor_",colnames(sub))]),end=rowSums(sub[,grep("^end_",colnames(sub))])
                     ,per=rowSums(sub[,grep("^per_",colnames(sub))]),pro=rowSums(sub[,grep("^pro_",colnames(sub))])
                     ,xyl=rowSums(sub[,grep("^xyl_",colnames(sub))]),phl=rowSums(sub[,grep("^phl_",colnames(sub))])
                     ,lrc=rowSums(sub[,grep("^lrc_",colnames(sub))]),col=rowSums(sub[,grep("^col_",colnames(sub))]))
In [144]:
bc_rank$GeneID <- wanted_TFs$GeneID[match(rownames(bc_rank),wanted_TFs$Name)]
In [145]:
head(bc_rank)
A data.frame: 6 x 12
allatritricorendperproxylphllrccolGeneID
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
BZIP931.422130.0000000.0000000.00000000 0.0057361388.5531661311.880881070.0200331510.9623184 0.0000000.000000AT5G24800
AT3G4343029.059650.0000000.0000000.00544388 0.0293608339.2065652611.246261281.83863137 6.7333880 0.0000000.000000AT3G43430
PLT123.975143.9406080.0000002.00953127 1.4920576860.05699842 0.000000000.00000000 0.0000000 9.1480087.327940AT3G20840
HAT733.139776.2009145.5473298.04274907 5.8771250101.24427942 0.000000000.00000000 0.0122843 4.2849221.930171AT5G15150
MYB3620.574180.0000000.0000006.2909368910.7485442723.53469871 0.000000000.00000000 0.0000000 0.0000000.000000AT5G57620
GATA233.122736.6237926.5965572.46621779 2.0516644240.80375905 0.038818940.09406244 0.155952912.1035092.188393AT2G45050

Atrichoblast¶

In [146]:
atri_rank <- bc_rank[which(bc_rank$atri*2 > bc_rank$all),]%>% arrange(desc(atri))
atri_rank$GeneName <- rownames(atri_rank)
In [147]:
atri_rank
A data.frame: 43 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYB2316.317932558.207139643.3119169161.4352154420.0000000000.0000000000.0000000000.0000000000.0000000003.2160757780.147584780AT5G40330MYB23
GL212.598795407.072848773.6069464570.1212837190.1265593840.0000000000.0000000000.0000000000.0000000001.6711570660.000000000AT1G79840GL2
TTG2 9.806358916.930965552.2957463990.0432621800.0310312460.0000000000.0000000000.0000000000.0000000000.5053535400.000000000AT2G37260TTG2
MYB45 7.740543165.000011861.5483174051.1059030990.0322405030.0000000000.0000000000.0000000000.0000000000.0540702890.000000000AT3G48920MYB45
IAA14 8.696812354.869767172.3500630820.0571525400.0000000000.1678301670.4868659500.1681210350.0062762390.5499816010.040754561AT4G14550IAA14
WRKY45 5.282821874.521272770.6622003950.0288874570.0057361380.0044601760.0000000000.0000000000.0000000000.0454991500.014765782AT3G01970WRKY45
ARR6 6.831800693.829313921.6046928370.1454062770.0911570870.1426888890.1929163680.2061122990.0685090680.2631009410.287903003AT5G62920ARR6
CRF4 6.170323293.583508541.2132041390.5908973760.2169263920.0513166030.0000000000.0000000000.0000000000.4752925000.039177743AT4G27950CRF4
AT2G28710 3.609993963.219993510.3041570500.0000000000.0076481840.0000000000.0000000000.0000000000.0000000000.0781952150.000000000AT2G28710AT2G28710
NAC6 3.863093502.924487030.5950946530.0000000000.0549401250.0000000000.0000000000.0000000000.0000000000.2885716830.000000000AT5G39610NAC6
MYB50 5.351781462.751397600.5031405680.0598173380.0000000000.0000000000.1376834801.8729330380.0268094350.0000000000.000000000AT1G57560MYB50
FIT 4.327269362.734840460.7208090850.0000000000.0286696780.0000000000.0000000000.0000000000.0000000000.7675579130.075392220AT2G28160FIT
WRKY27 4.760952352.513987380.6603870420.0592086750.0000000000.0000000000.0000000000.0000000000.0000000001.4676231240.059746125AT5G52830WRKY27
HB17 4.331772542.475058191.2590456910.0000000000.0028680690.0000000000.0076393260.5871612640.0000000000.0000000000.000000000AT2G01430HB17
AT3G05860 2.759943671.880690000.8665755970.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0126780800.000000000AT3G05860AT3G05860
OFP18 2.110121241.842708680.2253343280.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0420782280.000000000AT3G52540OFP18
LBD25 2.553638201.615635770.0250621450.7437862350.0121980360.1196275970.0373284180.0000000000.0000000000.0000000000.000000000AT3G27650LBD25
NAC044 2.740528361.537851960.1850489130.0953160410.2130342970.6308201770.0000000000.0000000000.0000000000.0784569740.000000000AT3G01600NAC044
RMR1 1.998742391.458860130.0434332520.0802470760.1155418290.0327854700.1346172320.0263203420.0759997340.0000000000.030937316AT5G66160RMR1
NAC003 2.327626241.407602020.3117704680.3535068850.0598909140.0719636210.0526643530.0484298100.0000000000.0000000000.021798166AT1G02220NAC003
KAN 2.209877121.273534920.3226956910.1214762910.0237217700.0000000000.0000000000.0000000000.0000000000.3855669140.082881531AT5G16560KAN
AT5G22890 1.369136361.143789220.2064704080.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.018876724AT5G22890AT5G22890
HB30 1.272880691.092752260.0065877970.0000000000.0028680690.0250976820.0000000000.0416241580.0077470060.0962037170.000000000AT5G15210HB30
WRKY47 1.658310841.071820340.2124054270.1205343200.2535507500.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G01720WRKY47
PTF1 1.693357291.016818500.1300216280.2459831020.2559317670.0000000000.0081782730.0000000000.0364240230.0000000000.000000000AT3G02150PTF1
AT2G18670 1.457424650.790567540.3434663030.2294167230.0219592430.0000000000.0000000000.0000000000.0000000000.0326737800.039341067AT2G18670AT2G18670
HB24 1.255686870.775311200.2168483300.0038800240.0000000000.0405339630.1933321050.0075248150.0044568590.0137995690.000000000AT2G18350HB24
AT4G31650 0.552199870.402612540.0927065680.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0568807620.000000000AT4G31650AT4G31650
HSFB3 0.399122090.374536250.0245858440.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G41690HSFB3
GIS3 0.472358930.329719510.1426394150.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT1G68360GIS3
NAC069 0.537968180.290796120.0988683600.0000000000.0028680690.0000000000.0000000000.0000000000.0000000000.0421253640.103310267AT4G01550NAC069
MEA 0.295035320.252687570.0079855910.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0343621680.000000000AT1G02580MEA
AT4G01350 0.387581730.231893680.1009637430.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0484645130.006259796AT4G01350AT4G01350
NLP4 0.278563830.190511770.0550254050.0000000000.0028680690.0000000000.0000000000.0000000000.0301585840.0000000000.000000000AT1G20640NLP4
AT1G11490 0.219127050.165630570.0457396370.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0077568390.000000000AT1G11490AT1G11490
PHE1 0.121115510.113185700.0079298030.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT1G65330PHE1
AT4G18110 0.078302470.078302470.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G18110AT4G18110
AT1G14600 0.080888670.072284460.0000000000.0000000000.0086042070.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT1G14600AT1G14600
WRKY13 0.045821440.045821440.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G39410WRKY13
LBD26 0.065674640.040829630.0111563380.0077220080.0000000000.0000000000.0000000000.0000000000.0000000000.0059666710.000000000AT3G27940LBD26
AT3G07260 0.075932830.039719930.0000000000.0000000000.0362128970.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT3G07260AT3G07260
AT4G38070 0.041341660.026289350.0083601480.0000000000.0066921610.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G38070AT4G38070
AT3G13840 0.011194030.011194030.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT3G13840AT3G13840
In [148]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(atri_rank[1:10,], aes(x=reorder(GeneName, atri, decreasing = FALSE),  y=atri)) + geom_point(size=4)+ 
  labs(title="Atrichoblast-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [149]:
write.csv(atri_rank,"Atrichoblast_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [150]:
tf_rank <- atri_rank %>% rownames(.)
In [151]:
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [152]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [153]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Atrichoblast ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [154]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Trichoblast¶

In [155]:
tri_rank <- bc_rank[which(bc_rank$tri*2 > bc_rank$all),]%>% arrange(desc(tri))
tri_rank$GeneName <- rownames(tri_rank)
In [156]:
tri_rank
A data.frame: 43 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT3G5337010.7030674821.8097421478.3096774700.0000000000.0000000000.1626686470.054081380.3257317130.0411661210.0000000000.000000000AT3G53370AT3G53370
LRL311.4714841773.3794612318.0920229450.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT5G58010LRL3
RHD610.2318794343.0439193167.1879601170.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G66470RHD6
AT4G09100 5.3195016340.2364893545.0830122790.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT4G09100AT4G09100
RSL4 5.1672610700.1102647295.0569963420.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G27740RSL4
RSL2 4.5244412110.0513789544.4730622580.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT4G33880RSL2
RAP2.11 3.2102044770.0000000003.1976631180.0000000000.0000000000.0000000000.000000000.0125413590.0000000000.0000000000.000000000AT5G19790RAP2.11
AT4G39160 3.5543180320.2236745633.1890483640.0000000000.0124282980.0043848280.020174150.0000000000.0473212920.0090352420.048251301AT4G39160AT4G39160
AT5G56200 3.1817727190.0000000003.1817727190.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT5G56200AT5G56200
AT2G37120 5.0449051350.8289257412.5831075730.0552633840.1564562220.1791138070.016283880.9741561090.1182286790.1295913370.003778406AT2G37120AT2G37120
ESE3 2.6833090010.1193291052.2060752200.2058071460.1421156500.0000000000.000000000.0000000000.0000000000.0000000000.009981880AT5G25190ESE3
WRKY61 4.2598705652.1099372392.1499333260.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G18860WRKY61
AT5G06800 2.8664486971.0772813621.7375094650.0000000000.0129879610.0059095570.000000000.0000000000.0327603520.0000000000.000000000AT5G06800AT5G06800
WRKY70 2.6167355170.3622066671.5436058420.0000000000.0000000000.0739522730.367918320.0182636830.0033395410.1306395550.116809634AT3G56400WRKY70
RL6 1.5339619410.0000000001.5339619410.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G75250RL6
WRKY72 2.6312093130.3975272081.3300701670.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.7174048610.186207077AT5G15130WRKY72
GL3 1.2642239400.2687985760.9789974380.0164279260.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT5G41315GL3
AT1G61990 1.6465433290.3087646130.9247355130.1070703780.1210992690.1076941750.044230330.0025082720.0000000000.0196927590.010748023AT1G61990AT1G61990
TAFII15 1.4990916640.0574740930.7614139810.0038800240.0312486860.1329663420.143262050.2046426320.1554063490.0000000000.008797508AT4G31720TAFII15
AT2G05160 0.7247675380.0548121650.6627108990.0000000000.0000000000.0000000000.000000000.0000000000.0072444740.0000000000.000000000AT2G05160AT2G05160
AT2G20030 0.7004843130.0734842010.6270001120.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT2G20030AT2G20030
AT5G04390 0.5929850460.0037313430.5777650060.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.011488697AT5G04390AT5G04390
MC2 1.0319872700.4562455340.5757417370.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT4G25110MC2
WRKY42 1.0950534220.1812745110.5654371560.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.2489628710.099378883AT4G04450WRKY42
SUVR4 0.3820889000.0136902280.2945525310.0115830120.0000000000.0000000000.000000000.0000000000.0000000000.0224987650.039764365AT3G04380SUVR4
AT3G22560 0.3619862890.1066810720.2553052180.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT3G22560AT3G22560
RAD54 0.2806329490.0000000000.1559467220.0321818480.0000000000.0113974510.000000000.0000000000.0000000000.0691125270.011994401AT3G19210RAD54
MYB47 0.2581389350.1093145490.1411762020.0000000000.0076481840.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G18710MYB47
EIL2 0.1381090820.0000000000.1381090820.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT5G21120EIL2
AT2G14760 0.1319756070.0000000000.1319756070.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT2G14760AT2G14760
AGL87 0.1391753180.0330999430.1060753750.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G22590AGL87
AT2G17600 0.1050795470.0000000000.1050795470.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT2G17600AT2G17600
ASG3 0.1539608130.0186567160.1039885740.0000000000.0028680690.0029823030.025465150.0000000000.0000000000.0000000000.000000000AT2G44980ASG3
AT1G02040 0.0575329150.0000000000.0575329150.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G02040AT1G02040
BPC5 0.0678389090.0132399770.0545989320.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT4G38910BPC5
SUVH2 0.0885956280.0000000000.0481571480.0000000000.0028680690.0029823030.025745180.0000000000.0088429310.0000000000.000000000AT2G33290SUVH2
NAC005 0.0320320460.0000000000.0320320460.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G02250NAC005
IAA34 0.0248047390.0000000000.0248047390.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT1G15050IAA34
CIA2 0.0385345940.0101535580.0245569450.0000000000.0038240920.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT5G57180CIA2
AT2G24680 0.0296248290.0000000000.0169150980.0000000000.0000000000.0000000000.012709730.0000000000.0000000000.0000000000.000000000AT2G24680AT2G24680
RR14 0.0299765460.0000000000.0155446090.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.014431937AT2G01760RR14
AT2G28920 0.0126505730.0000000000.0126505730.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT2G28920AT2G28920
MYB97 0.0093733120.0000000000.0093733120.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000AT4G26930MYB97
In [157]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(tri_rank[1:10,], aes(x=reorder(GeneName, tri, decreasing = FALSE),  y=tri)) + geom_point(size=4)+ 
  labs(title="Trichoblast-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [158]:
write.csv(tri_rank,"Trichoblast_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [159]:
## Top20 only
tf_rank <- tri_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [160]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [161]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Trichoblast ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [162]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Cortex¶

In [163]:
cor_rank <- bc_rank[which(bc_rank$cor*2 > bc_rank$all),]%>% arrange(desc(cor))
cor_rank$GeneName <- rownames(cor_rank)
In [164]:
cor_rank
A data.frame: 18 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT1G057107.839890030.072284460.0000000005.773866241.9738418570.014445290.0054521820.00000000.0000000000.0000000000.000000000AT1G05710AT1G05710
AT1G629756.727774311.133221620.1468309363.404156521.3226099830.271902330.1364991150.11892060.1936332110.0000000000.000000000AT1G62975AT1G62975
AT1G722104.379965690.000000000.0000000003.261584610.9164436680.000000000.0000000000.00000000.0000000000.0000000000.201937410AT1G72210AT1G72210
AT2G383003.021461380.000000000.0000000002.356523640.3087595030.000000000.0000000000.00000000.0000000000.0000000000.356178233AT2G38300AT2G38300
LAF12.656726440.072914320.0000000002.165948940.4178631680.000000000.0000000000.00000000.0000000000.0000000000.000000000AT4G25560LAF1
MYB863.668081311.586706190.0357362961.892308240.0066921610.000000000.0000000000.10344720.0044974680.0287118650.009981880AT5G26660MYB86
JAZ62.586397910.321910940.0799503981.766479960.1947594880.105743100.0651251860.00000000.0199824030.0085916190.023854811AT1G72450JAZ6
AT2G426601.459828310.050779080.0000000001.295971360.0000000000.000000000.0000000000.00000000.0000000000.0000000000.113077867AT2G42660AT2G42660
IDD41.735766880.000000000.0000000001.280519640.4552472390.000000000.0000000000.00000000.0000000000.0000000000.000000000AT2G02080IDD4
LRP12.286490900.000000000.0000000001.248762790.2511336320.278956550.4828650860.00000000.0122532590.0000000000.012519592AT5G12330LRP1
AT4G280302.084139380.284807280.4434965721.066222320.2571861840.000000000.0000000000.00000000.0000000000.0000000000.032427031AT4G28030AT4G28030
AT1G643801.917476340.598396250.0427750411.044140780.2321642690.000000000.0000000000.00000000.0000000000.0000000000.000000000AT1G64380AT1G64380
RVN1.631733170.000000000.0000000000.843364980.7820520650.000000000.0000000000.00000000.0000000000.0000000000.006316118AT2G02070RVN
GLK20.942994870.000000000.0000000000.581896150.0028680690.116574980.1901993340.00000000.0476779350.0000000000.003778406AT5G44190GLK2
AT2G468100.201852380.000000000.0039927950.119577190.0410827830.000000000.0111484860.00000000.0000000000.0000000000.026051124AT2G46810AT2G46810
AT3G189600.094134020.000000000.0000000000.087874230.0000000000.000000000.0000000000.00000000.0000000000.0000000000.006259796AT3G18960AT3G18960
AT4G114000.036036060.000000000.0000000000.024256740.0090532240.000000000.0027260910.00000000.0000000000.0000000000.000000000AT4G11400AT4G11400
PIL50.035185380.000000000.0000000000.020845040.0143403440.000000000.0000000000.00000000.0000000000.0000000000.000000000AT2G20180PIL5
In [165]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(cor_rank[1:10,], aes(x=reorder(GeneName, cor, decreasing = FALSE),  y=cor)) + geom_point(size=4)+ 
  labs(title="Cortex-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [166]:
write.csv(cor_rank,"Cortex_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [167]:
tf_rank <- cor_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")
In [168]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [169]:
options(repr.plot.width=24, repr.plot.height=9)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Cortex ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,nrow=3),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,nrow=3),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,nrow=3),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [170]:
## Top 10 only
tf_rank <- cor_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
#p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
#p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
#p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")
In [171]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
#p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
#p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
#p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [172]:
options(repr.plot.width=24, repr.plot.height=5)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Cortex ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,nrow=2),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,nrow=2),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,nrow=2),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [173]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Endodermis¶

In [174]:
end_rank <- bc_rank[which(bc_rank$end*2 > bc_rank$all),]%>% arrange(desc(end))
end_rank$GeneName <- rownames(end_rank)
In [175]:
end_rank
A data.frame: 42 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYB3620.5741798710.0000000000.0000000006.29093688610.7485442723.5346987130.0000000000.0000000000.0000000000.0000000000.000000000AT5G57620MYB36
MYB7412.7164428150.0000000000.0000000004.532213333 7.6853819360.2361729600.0124753950.1825137730.0000000000.0148647340.052820684AT4G05100MYB74
MYB68 9.6990060690.0000000000.0000000002.501400511 6.1796380161.0179675430.0000000000.0000000000.0000000000.0000000000.000000000AT5G65790MYB68
SOM 7.7412160410.0502690550.0000000002.027707378 4.0215604421.2441986070.3450408650.0000000000.0524396940.0000000000.000000000AT1G03790SOM
BLJ 4.5571295050.0000000000.0000000000.643910731 3.7194126790.1938060950.0000000000.0000000000.0000000000.0000000000.000000000AT1G14580BLJ
RAX2 5.3184356770.1474710240.0494601041.185754593 3.4656862230.4506245500.0194391830.0000000000.0000000000.0000000000.000000000AT2G36890RAX2
SCR 4.7531447520.0000000000.0000000001.662358141 3.0037428310.0870437790.0000000000.0000000000.0000000000.0000000000.000000000AT3G54220SCR
TLP11 4.1558780320.0060126850.3708387230.278142330 2.1798861460.6278603200.5059656710.0000000000.1871721580.0000000000.000000000AT5G18680TLP11
SCL3 3.3225649010.0000000000.0000000000.687705471 1.7611123670.2346808450.1123343950.0000000000.0000000000.1286820750.398049747AT1G50420SCL3
chr31 1.7020671000.0000000000.0000000000.000000000 1.5727270900.0927546320.0000000000.0125413590.0240440190.0000000000.000000000AT1G05490chr31
BIB 1.4060281930.0000000000.0000000000.010856804 1.3951713890.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT3G45260BIB
bZIP58 1.6616116920.0000000000.0000000000.227490055 1.3065906160.0187510760.1087799440.0000000000.0000000000.0000000000.000000000AT1G13600bZIP58
MYB122 1.9620600420.0000000000.0000000000.666940898 1.2083717300.0636647770.0230826370.0000000000.0000000000.0000000000.000000000AT1G74080MYB122
AGL42 1.2449141770.0000000000.0000000000.446109295 0.7265972050.0429631280.0292445490.0000000000.0000000000.0000000000.000000000AT5G62165AGL42
ERF15 1.3145496260.0000000000.0000000000.590902307 0.7049938080.0000000000.0000000000.0000000000.0000000000.0000000000.018653511AT2G31230ERF15
AGL102 0.6855437580.0000000000.0000000000.024906311 0.6443521880.0000000000.0000000000.0000000000.0000000000.0000000000.016285259AT1G47760AGL102
AT4G38340 0.4422513750.0000000000.0000000000.014497423 0.4277539520.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G38340AT4G38340
SIGA 0.4305634390.0000000000.0000000000.030488331 0.3013061060.0590558380.0359347570.0000000000.0000000000.0000000000.003778406AT1G64860SIGA
AT2G43140 0.3353947760.0000000000.0000000000.066194151 0.2692006250.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G43140AT2G43140
TIFY8 0.4397955180.0000000000.0000000000.011583012 0.2532023460.0453429070.0000000000.0000000000.0345229760.0561506820.038993595AT4G32570TIFY8
AT5G26749 0.3849318210.0760160440.0309102650.003880024 0.2300918010.0285978650.0154358210.0000000000.0000000000.0000000000.000000000AT5G26749AT5G26749
FAR1 0.3612061820.0000000000.0032938980.036799976 0.1898575450.0259754400.0577555110.0000000000.0403808860.0071429260.000000000AT4G15090FAR1
ULT2 0.3551195320.1762421080.0000000000.000000000 0.1788774250.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G20825ULT2
AT2G33720 0.1570346120.0000000000.0000000000.004145189 0.1528894230.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G33720AT2G33720
AMS 0.1291318720.0000000000.0000000000.006228522 0.1229033500.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G16910AMS
NF-YA2 0.1880318990.0000000000.0000000000.006204071 0.1074832850.0042372880.0701072550.0000000000.0000000000.0000000000.000000000AT3G05690NF-YA2
ERF73 0.1428710900.0000000000.0000000000.000000000 0.0967608140.0075443860.0053023230.0000000000.0000000000.0220004560.011263112AT1G72360ERF73
AT1G18335 0.1842358870.0117708420.0306124770.000000000 0.0945169120.0145607170.0074187250.0062871920.0190690220.0000000000.000000000AT1G18335AT1G18335
AT4G00390 0.0720931340.0000000000.0000000000.000000000 0.0720931340.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT4G00390AT4G00390
AT3G18870 0.0792085530.0000000000.0000000000.010395189 0.0623163580.0000000000.0000000000.0000000000.0064970060.0000000000.000000000AT3G18870AT3G18870
AT1G76880 0.0660209740.0000000000.0000000000.000000000 0.0619493400.0000000000.0000000000.0000000000.0040716340.0000000000.000000000AT1G76880AT1G76880
HB28 0.0890807230.0117708420.0093733120.012041042 0.0558955270.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT3G50890HB28
NF-YA6 0.0513147860.0000000000.0000000000.000000000 0.0417796590.0000000000.0095351270.0000000000.0000000000.0000000000.000000000AT3G14020NF-YA6
4-Sep 0.0611409780.0000000000.0204992000.000000000 0.0406417780.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT2G037104-Sep
FD 0.0520587440.0000000000.0000000000.010984046 0.0310312460.0000000000.0000000000.0000000000.0100434510.0000000000.000000000AT4G35900FD
AT3G07500 0.0542368330.0000000000.0000000000.000000000 0.0284884130.0257484210.0000000000.0000000000.0000000000.0000000000.000000000AT3G07500AT3G07500
AGL67 0.0231122090.0000000000.0000000000.000000000 0.0231122090.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT1G77950AGL67
AT1G61970 0.0397401480.0000000000.0000000000.000000000 0.0222066100.0000000000.0067855150.0000000000.0000000000.0000000000.010748023AT1G61970AT1G61970
DUO1 0.0146995610.0000000000.0000000000.000000000 0.0091879550.0000000000.0055116060.0000000000.0000000000.0000000000.000000000AT3G60460DUO1
AGL13 0.0107319260.0000000000.0000000000.000000000 0.0086042070.0000000000.0021277200.0000000000.0000000000.0000000000.000000000AT3G61120AGL13
AGL62 0.0076481840.0000000000.0000000000.000000000 0.0076481840.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT5G60440AGL62
TDF1 0.0066921610.0000000000.0000000000.000000000 0.0066921610.0000000000.0000000000.0000000000.0000000000.0000000000.000000000AT3G28470TDF1
In [176]:
options(repr.plot.width=8, repr.plot.height=4)
ggplot(end_rank[1:10,], aes(x=reorder(GeneName, end, decreasing = FALSE),  y=end)) + geom_point(size=4)+ 
  labs(title="Endodermis-specific TF Prioritization",x="", y = "Combined centrality score (betweeness, out and in degree)")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [177]:
write.csv(end_rank,"Endodermis_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [178]:
tf_rank <- end_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [179]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [180]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Endodermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [181]:
tf_rank <- end_rank %>% rownames(.)
# Max 10
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
#p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
#p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
#p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [182]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
#p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
#p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
#p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [183]:
options(repr.plot.width=24, repr.plot.height=5)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Endodermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,nrow=2),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,nrow=2),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,nrow=2),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [184]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5]) + plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10]) 
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5]) + plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10]) 
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5]) + plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10]) 

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=16, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Pericycle¶

In [185]:
per_rank <- bc_rank[which(bc_rank$per*2 > bc_rank$all),]%>% arrange(desc(per))
per_rank$GeneName <- rownames(per_rank)
In [186]:
per_rank
A data.frame: 19 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYBC114.910413150.000000000.000000000.658602612.4353767238.722197522.906277620.0000000000.1879586720.000000000AT2G40970MYBC1
AT4G2910015.426267410.000000000.000000000.042471040.1809977367.750039715.139985920.0000000002.3127730020.000000000AT4G29100AT4G29100
NUC 6.131138630.000000000.000000000.418357650.0985752844.345538621.041805100.0000000000.2268619760.000000000AT5G44160NUC
MGP 4.898945880.252235750.000000000.204792610.1097630133.690404200.633941500.0000000000.0078088140.000000000AT1G03840MGP
AT3G21330 4.379298630.164061370.000000000.091968240.1537190573.393597290.575952680.0000000000.0000000000.000000000AT3G21330AT3G21330
LBD14 4.272218240.000000000.000000000.016235350.0518849483.371293020.832804920.0000000000.0000000000.000000000AT2G31310LBD14
IDD11 4.798429800.000000000.000000000.000000000.0000000003.204045761.594384040.0000000000.0000000000.000000000AT3G13810IDD11
AT2G20100 4.295882760.000000000.000000000.000000000.0326304382.820490791.269139580.1736219480.0000000000.000000000AT2G20100AT2G20100
GATA23 3.856607490.000000000.000000000.000000000.0078749262.676966331.171766230.0000000000.0000000000.000000000AT5G26930GATA23
AT2G14880 4.167823130.435774250.041145760.355578550.2876646122.268798460.778861490.0000000000.0000000000.000000000AT2G14880AT2G14880
SAP 2.745238060.128778960.000000000.256762670.0932794962.144626780.121790160.0000000000.0000000000.000000000AT5G35770SAP
LAS 0.510918720.000000000.000000000.000000000.0534616980.331094470.126362550.0000000000.0000000000.000000000AT1G55580LAS
DEL1 0.435764350.048332970.034802520.021582950.0194486610.234018300.000000000.0025082720.0378354010.037235280AT3G48160DEL1
BOP2 0.343996260.000000000.000000000.000000000.0030749260.209666600.131254730.0000000000.0000000000.000000000AT2G41370BOP2
AT1G78930 0.123009740.000000000.000000000.000000000.0028680690.085475290.034666380.0000000000.0000000000.000000000AT1G78930AT1G78930
AT4G31060 0.141886330.000000000.000000000.000000000.0000000000.072689850.015884330.0000000000.0254529860.027859160AT4G31060AT4G31060
WOX14 0.100547290.000000000.000000000.000000000.0000000000.054616000.043423020.0025082720.0000000000.000000000AT1G20700WOX14
AT3G61550 0.043334590.000000000.000000000.000000000.0000000000.043334590.000000000.0000000000.0000000000.000000000AT3G61550AT3G61550
PRR3 0.026674550.000000000.000000000.000000000.0000000000.026674550.000000000.0000000000.0000000000.000000000AT5G60100PRR3
In [187]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(per_rank[1:10,], aes(x=reorder(GeneName, per, decreasing = FALSE),  y=per)) + geom_point(size=4)+ 
  labs(title="Pericycle-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [188]:
write.csv(per_rank,"Pericycle_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [189]:
tf_rank <- per_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [190]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [191]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Pericycle ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [192]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Procambium¶

In [193]:
pro_rank <- bc_rank[which(bc_rank$pro*2 > bc_rank$all),]%>% arrange(desc(pro))
pro_rank$GeneName <- rownames(pro_rank)
In [194]:
pro_rank
A data.frame: 30 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYB4316.0630770430.000000000.0000000000.000000000.0184627904.8797140068.0477144810.2404942352.8766915310.0000000000.000000000AT5G16600MYB43
ABO312.4181814670.387111770.0720706920.000000000.0676734754.0103052637.2902876110.1744688360.4162638190.0000000000.000000000AT1G66600ABO3
TCP15 9.1770760700.000000000.0000000000.000000000.0000000000.6495983184.6818485342.1378786961.7077505210.0000000000.000000000AT1G69690TCP15
HAT9 5.4921512410.068700230.0000000000.014475950.0130739921.5852637383.6995530130.0000000000.1110843240.0000000000.000000000AT2G22800HAT9
NAC001 5.5860971560.000000000.0042021440.482473340.1796061081.4159837012.8595789950.0062541670.6379987020.0000000000.000000000AT1G01010NAC001
ERF12 4.8711290580.000000000.0000000000.000000000.0121436261.6837049402.8165672310.0000000000.3587132610.0000000000.000000000AT1G28360ERF12
IDD14 5.3433049000.000000000.0000000000.010791470.0038726691.3934007832.7341300230.3910997600.8100101910.0000000000.000000000AT1G68130IDD14
AT1G75490 2.9583170940.000000000.0000000000.000000000.0000000000.1702109512.4650714840.0000000000.3106915820.0000000000.012343077AT1G75490AT1G75490
AT4G20970 2.1615507670.000000000.0000000000.000000000.0028680690.4271557551.6784587180.0000000000.0530682260.0000000000.000000000AT4G20970AT4G20970
AT2G40200 2.3803823300.000000000.0122784720.000000000.0000000000.3719889221.6753230420.0000000000.3207918940.0000000000.000000000AT2G40200AT2G40200
SHY2 2.1640733310.000000000.0000000000.000000000.0000000000.2500355171.4276227210.1816345650.3047805280.0000000000.000000000AT1G04240SHY2
AT4G25410 2.1326301610.050402750.0491275480.000000000.0322047090.3150718991.3220931510.0556586400.3080714660.0000000000.000000000AT4G25410AT4G25410
NAC080 1.8247149420.000000000.0000000000.000000000.0107231100.2897947771.3048527050.0000000000.1894054410.0246114220.005327487AT5G07680NAC080
NAC045 1.6528361690.000000000.0000000000.000000000.0000000000.1366721030.8675592800.0405504500.6080543360.0000000000.000000000AT3G03200NAC045
HB18 1.1795989850.000000000.0000000000.000000000.0066921610.2586657670.7537561470.0299847020.1305002090.0000000000.000000000AT1G70920HB18
ARF19 1.0326832250.017136780.0646385040.035615800.0368687640.1676447180.5757144840.0137459580.0673009260.0000000000.054017294AT1G19220ARF19
LBD29 0.5949290370.000000000.0000000000.000000000.0000000000.0578252520.5371037850.0000000000.0000000000.0000000000.000000000AT3G58190LBD29
STH 0.7167419100.000000000.0000000000.020661510.0086042070.1028892890.3584271750.0218168190.0503319090.0669201210.087090879AT2G31380STH
AT1G24210 0.1972167620.000000000.0000000000.000000000.0066921610.0657760520.1247485490.0000000000.0000000000.0000000000.000000000AT1G24210AT1G24210
AT4G27240 0.1622211390.000000000.0000000000.021582950.0090532240.0305836950.0954333020.0000000000.0055679700.0000000000.000000000AT4G27240AT4G27240
DAR6 0.1034864770.007768330.0000000000.000000000.0038240920.0000000000.0918940560.0000000000.0000000000.0000000000.000000000AT5G66620DAR6
WRKY67 0.1589878240.000000000.0000000000.000000000.0028680690.0757021360.0804176190.0000000000.0000000000.0000000000.000000000AT1G66550WRKY67
AT5G55580 0.1233768600.000000000.0000000000.000000000.0000000000.0413872590.0748466750.0000000000.0000000000.0071429260.000000000AT5G55580AT5G55580
AT1G74120 0.0574412900.000000000.0000000000.000000000.0095602290.0000000000.0334228220.0000000000.0144582390.0000000000.000000000AT1G74120AT1G74120
EMB3114 0.0226253190.000000000.0000000000.000000000.0038240920.0060914970.0127097300.0000000000.0000000000.0000000000.000000000AT2G36000EMB3114
NF-YA8 0.0181393340.000000000.0000000000.000000000.0086042070.0000000000.0095351270.0000000000.0000000000.0000000000.000000000AT1G17590NF-YA8
HB51 0.0086494200.000000000.0000000000.000000000.0000000000.0000000000.0086494200.0000000000.0000000000.0000000000.000000000AT5G03790HB51
IAA32 0.0107644730.000000000.0000000000.000000000.0000000000.0000000000.0074187250.0000000000.0033457480.0000000000.000000000AT2G01200IAA32
MYB95 0.0058609630.000000000.0000000000.000000000.0000000000.0000000000.0058609630.0000000000.0000000000.0000000000.000000000AT1G74430MYB95
AT1G18960 0.0037332430.000000000.0000000000.000000000.0000000000.0000000000.0037332430.0000000000.0000000000.0000000000.000000000AT1G18960AT1G18960
In [195]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(pro_rank[1:10,], aes(x=reorder(GeneName, pro, decreasing = FALSE),  y=pro)) + geom_point(size=4)+ 
  labs(title="Procambium-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [196]:
write.csv(pro_rank,"Procambium_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [197]:
tf_rank <- pro_rank %>% rownames(.)
# Max 30
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_blank(tf_rank[15])

p4 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p5 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p6 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_blank(tf_rank[15])

p7 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p8 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p9 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_blank(tf_rank[15])
In [198]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [199]:
options(repr.plot.width=24, repr.plot.height=10)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Procambium ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,nrow=3),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p4,p5,p6,nrow=3),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p7,p8,p9,nrow=3),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Phloem¶

In [200]:
phl_rank <- bc_rank[which(bc_rank$phl*2 > bc_rank$all),]%>% arrange(desc(phl))
phl_rank$GeneName <- rownames(phl_rank)
In [201]:
phl_rank
A data.frame: 50 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
APL17.8443220730.000000000.0000000000.0000000000.0000000001.8956947741.7149372602.16495314712.0687368920.0000000000.000000000AT1G79430APL
OBP219.6265161780.000000000.0000000000.0000000000.0000000002.8865060045.8361949970.01508265510.8887325210.0000000000.000000000AT1G07640OBP2
AT3G12730 9.8070268570.000000000.0000000000.0000000000.0000000001.0850959470.2029278800.000000000 8.5190030300.0000000000.000000000AT3G12730AT3G12730
DOF610.3699081000.000000000.0000000000.0000000000.0000000001.2937667650.4625082721.782009903 6.8316231600.0000000000.000000000AT3G45610DOF6
AT2G03500 8.3377496130.000000000.0000000000.0000000000.0000000001.1101912441.1364209470.020165247 6.0709721750.0000000000.000000000AT2G03500AT2G03500
DAR2 8.6183520040.000000000.0000000000.0000000000.0000000001.1434522241.1088341340.468422625 5.8976430210.0000000000.000000000AT2G39830DAR2
AT2G28810 9.4266140470.000000000.0000000000.0000000000.0000000001.5801623272.6631120480.026254293 5.1570853780.0000000000.000000000AT2G28810AT2G28810
HCA2 5.5178757460.000000000.0000000000.0000000000.0000000000.3483252740.2314317910.015214752 4.9229039290.0000000000.000000000AT5G62940HCA2
NAC057 5.5204385110.000000000.0000000000.0000000000.0000000000.3452805790.5126032800.015214752 4.6473398990.0000000000.000000000AT3G17730NAC057
AT5G41380 4.4850959580.000000000.0000000000.0000000000.0000000000.1050760260.0198055800.000000000 4.3602143520.0000000000.000000000AT5G41380AT5G41380
AT4G37180 5.2233959550.007932070.0074721710.0058369710.0482597290.6499753170.3239305570.017623951 3.9670735110.0842875600.111004117AT4G37180AT4G37180
NAC020 4.4748512990.000000000.0000000000.0000000000.0000000000.6866971790.3281054130.013878056 3.4461706510.0000000000.000000000AT1G54330NAC020
NAC2 3.4962584090.000000000.0000000000.0000000000.0000000000.3087786320.4257761680.000000000 2.7617036090.0000000000.000000000AT3G15510NAC2
bZIP19 4.2620232400.141003270.0140584650.0308971130.0760549300.4506174960.8238857190.016320279 2.7091859730.0000000000.000000000AT4G35040bZIP19
HB21 4.4597224850.000000000.0000000000.0000000000.0254134860.4821741921.3582197060.000000000 2.5939151010.0000000000.000000000AT2G18550HB21
AT1G49560 4.7679540530.320886700.0088649290.4244523850.3996954120.2300261850.1359605400.030264383 2.4481777770.2941467440.475478996AT1G49560AT1G49560
REM22 2.8223384500.000000000.0000000000.0000000000.0000000000.1987464480.2252807670.006221143 2.3920900920.0000000000.000000000AT3G17010REM22
FLP 4.2351526040.568108590.0316574350.1077443820.1172519650.1756756400.2250200130.016353303 2.2709325240.5067276850.215681071AT1G14350FLP
AT1G63820 3.7200067900.000000000.0000000000.0000000000.0093299670.8487433470.7822908210.000000000 2.0796426540.0000000000.000000000AT1G63820AT1G63820
AT1G26790 2.9102546990.000000000.0000000000.0000000000.0000000000.1793937150.6605569800.000000000 2.0703040040.0000000000.000000000AT1G26790AT1G26790
CRF1 3.7204085540.212761230.2069761440.2618732840.3247330960.3082646640.1384176430.000000000 1.9934417220.1959401220.078000645AT4G11140CRF1
AT5G02460 3.0553812860.000000000.0000000000.0000000000.0000000000.5654513170.5192699350.013812007 1.9568480280.0000000000.000000000AT5G02460AT5G02460
AT5G63700 3.2201045220.000000000.0000000000.5567330350.0000000000.0443499030.0295992820.000000000 1.7954001560.0000000000.794022145AT5G63700AT5G63700
NAC086 1.6712784100.000000000.0000000000.0000000000.0000000000.0581642120.0000000000.000000000 1.6131141980.0000000000.000000000AT5G17260NAC086
WRKY32 2.7650454120.000000000.0000000000.0000000000.0704881760.5661412170.4780178620.007524815 1.5583379990.0598207970.024714547AT4G30935WRKY32
VOZ1 2.6999881280.000000000.0000000000.0000000000.0446281260.4734644610.6217650500.083750499 1.4041015730.0338697260.038408694AT1G28520VOZ1
MYB10 2.1036181500.000000000.0000000000.0000000000.0000000000.0353723300.4982333120.247741073 1.3222714340.0000000000.000000000AT3G12820MYB10
GATA20 1.6846107130.000000000.0000000000.0000000000.0000000000.2777590930.0922644300.000000000 1.3145871900.0000000000.000000000AT2G18380GATA20
SVP 1.4322909580.000000000.0000000000.0296043370.0345899650.0946378120.0307583310.000000000 1.2130391100.0000000000.029661402AT2G22540SVP
AGL15 1.0983452510.000000000.0000000000.0000000000.0066921610.0502361570.0433909460.010132160 0.9878938280.0000000000.000000000AT5G13790AGL15
KNAT2 1.4612208270.000000000.0000000000.0189091500.1688043060.2260542360.0660452620.000000000 0.9814078730.0000000000.000000000AT1G70510KNAT2
ET2 0.8525038500.000000000.0000000000.0000000000.0000000000.0687702320.0785363010.000000000 0.7051973170.0000000000.000000000AT5G56780ET2
AT1G64530 1.1200457960.038829940.0698957320.1084180640.0957206220.0508559700.0363565830.006320216 0.6351928170.0145443080.063911545AT1G64530AT1G64530
WOX2 0.2750195160.000000000.0000000000.0000000000.0321625380.0000000000.0000000000.000000000 0.2428569780.0000000000.000000000AT5G59340WOX2
AT1G02030 0.3146414060.000000000.0046866560.0000000000.0318769610.0000000000.0000000000.000000000 0.2251223560.0529554320.000000000AT1G02030AT1G02030
AT1G58220 0.3392574870.000000000.0065877970.0000000000.0284884130.0000000000.0284252310.017623951 0.2003431220.0120910530.045697921AT1G58220AT1G58220
AGL80 0.2652825420.000000000.0000000000.0000000000.0028680690.0043151870.0594453790.000000000 0.1986539070.0000000000.000000000AT5G48670AGL80
AT3G06220 0.1807251160.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000 0.1807251160.0000000000.000000000AT3G06220AT3G06220
PIF7 0.2700239520.000000000.0231338640.0922710470.0019120460.0000000000.0000000000.000000000 0.1527069950.0000000000.000000000AT5G61270PIF7
SPL10 0.1935942930.000000000.0042021440.0000000000.0047801150.0000000000.0243956740.000000000 0.1455574210.0061183790.008540560AT1G27370SPL10
SPL13A 0.1815430920.000000000.0051950390.0000000000.0000000000.0000000000.0054544130.000000000 0.1271667420.0322453730.011481524AT5G50570SPL13A
AT5G63080 0.1988224280.000000000.0032938980.0000000000.0086042070.0122159500.0159958720.000000000 0.1014497410.0397721840.017490575AT5G63080AT5G63080
AT3G46070 0.1068513300.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000 0.0711879050.0356634250.000000000AT3G46070AT3G46070
DRD1 0.1120803870.000000000.0000000000.0000000000.0038240920.0211700770.0101448160.000000000 0.0613762220.0000000000.015565179AT2G16390DRD1
AT4G03250 0.0981840370.000000000.0143655880.0000000000.0047801150.0000000000.0124753950.000000000 0.0602682030.0000000000.006294737AT4G03250AT4G03250
TCP24 0.0598799160.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000 0.0598799160.0000000000.000000000AT1G30210TCP24
AT1G68030 0.0369692770.000000000.0000000000.0000000000.0028680690.0000000000.0040594240.000000000 0.0300417840.0000000000.000000000AT1G68030AT1G68030
WRKY50 0.0277795120.000000000.0000000000.0000000000.0028680690.0000000000.0031859210.000000000 0.0179471160.0000000000.003778406AT5G26170WRKY50
AT3G52270 0.0146412620.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000 0.0146412620.0000000000.000000000AT3G52270AT3G52270
OFP11 0.0074173820.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000 0.0074173820.0000000000.000000000AT4G14860OFP11
In [202]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(phl_rank[1:10,], aes(x=reorder(GeneName, phl, decreasing = FALSE),  y=phl)) + geom_point(size=4)+ 
  labs(title="Phloem-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [203]:
write.csv(phl_rank,"Phloem_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [204]:
tf_rank <- phl_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [205]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [206]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Phloem ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Xylem¶

In [207]:
xyl_rank <- bc_rank[which(bc_rank$xyl*2 > bc_rank$all),]%>% arrange(desc(xyl))
xyl_rank$GeneName <- rownames(xyl_rank)
In [208]:
xyl_rank
A data.frame: 91 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT1G6881011.5366220.000000000.0000000000.0000000000.0000000000.000000000.3249597511.0416330.170029080.0000000000.00000000AT1G68810AT1G68810
VND2 9.6383430.000000000.0000000000.0000000000.0000000000.000000000.02646882 9.6118740.000000000.0000000000.00000000AT4G36160VND2
MYB46 8.7776860.000000000.0000000000.0000000000.0000000000.000000000.00000000 8.7776860.000000000.0000000000.00000000AT5G12870MYB46
ATHB-1513.2432260.000000000.0000000000.0000000000.0000000000.597709673.71766157 8.5587210.369134030.0000000000.00000000AT1G52150ATHB-15
DOF210.2499950.000000000.0000000000.3515803051.2824581630.000000000.00000000 8.5278540.000000000.0502949930.03780762AT3G21270DOF2
MYB83 8.0330380.000000000.0000000000.0000000000.0000000000.000000000.00000000 8.0330380.000000000.0000000000.00000000AT3G08500MYB83
VND3 7.7889130.000000000.0000000000.0000000000.0000000000.000000000.03811280 7.7508000.000000000.0000000000.00000000AT5G66300VND3
AT1G66810 7.5616820.015864140.0260864040.0000000000.0000000000.000000000.00000000 7.4005630.000000000.1191681170.00000000AT1G66810AT1G66810
VND7 7.3019730.000000000.0000000000.0000000000.0000000000.000000000.00000000 7.3019730.000000000.0000000000.00000000AT1G71930VND7
IAA6 7.1880610.000000000.0000000000.0000000000.0000000000.000000000.01379361 7.1742670.000000000.0000000000.00000000AT1G52830IAA6
ZHD3 7.1434220.000000000.0000000000.0000000000.0000000000.000000000.00000000 7.1434220.000000000.0000000000.00000000AT2G02540ZHD3
IAA3110.9008040.000000002.8026041010.0000000000.0000000000.034766550.63950508 7.0435690.380359040.0000000000.00000000AT3G17600IAA31
PHB10.3322040.000000000.0000000000.0000000000.0000000000.341657901.93126800 6.5951161.156783380.1053961820.20198271AT2G34710PHB
IAA810.4225760.240347840.0000000000.0081176770.1206508390.286539141.57914862 6.4660310.282651680.8882568070.55083188AT2G22670IAA8
VND4 6.3478010.000000000.0000000000.0000000000.0000000000.000000000.00000000 6.3478010.000000000.0000000000.00000000AT1G12260VND4
BHLH3210.6521330.141124630.0000000000.1425778070.1603378833.142127841.16852421 5.8974400.000000000.0000000000.00000000AT3G25710BHLH32
VND5 5.6225240.000000000.0000000000.0000000000.0000000000.000000000.00000000 5.6225240.000000000.0000000000.00000000AT1G62700VND5
XND1 5.5774390.000000000.0000000000.0000000000.0000000000.000000000.06468006 5.5127580.000000000.0000000000.00000000AT5G64530XND1
VND1 5.2988230.000000000.0000000000.0000000000.0000000000.000000000.00000000 5.2988230.000000000.0000000000.00000000AT2G18060VND1
AT1G68200 5.2592170.000000000.0000000000.0000000000.0000000000.000000000.00000000 5.2592170.000000000.0000000000.00000000AT1G68200AT1G68200
HB31 5.1578560.000000000.0000000000.0000000000.0000000000.000000000.00000000 5.1578560.000000000.0000000000.00000000AT1G14440HB31
LBD31 4.8942360.000000000.0000000000.0000000000.0000000000.000000000.00000000 4.8942360.000000000.0000000000.00000000AT4G00210LBD31
NAC075 9.0543900.000000000.0000000000.0000000000.0000000000.353077530.21412043 4.5412423.901931310.0059666710.03805185AT4G29230NAC075
HAT14 5.0378220.000000000.0000000000.0000000000.0000000000.089003480.54526568 4.4035530.000000000.0000000000.00000000AT5G06710HAT14
LBD18 4.2923860.000000000.0000000000.0000000000.0000000000.000000000.00000000 4.2267540.000000000.0137995690.05183261AT2G45420LBD18
ASL9 5.4419490.000000000.0000000000.0000000000.0000000000.082147880.60827844 3.8549730.896550110.0000000000.00000000AT1G16530ASL9
NAC050 4.7757040.044785200.0032938980.0000000000.0038240920.000000000.00000000 3.7786090.170505970.2739122930.50077366AT3G10480NAC050
AT1G27660 6.4185030.000000000.0000000000.0161390670.0227894881.530792070.88450150 3.7266920.237588660.0000000000.00000000AT1G27660AT1G27660
JLO 3.7416220.000000000.0000000000.0000000000.0000000000.000000000.00000000 3.6973100.000000000.0137995690.03051252AT4G00220JLO
AP3 3.7544400.000000000.0000000000.0000000000.0227341740.000000000.02203160 3.6180790.091595280.0000000000.00000000AT3G54340AP3
..........................................
AT1G246101.285322950.000000000.0273245730.0000000000.0189937580.0525278580.0074187251.095335150.0484037470.0142730500.02104609AT1G24610AT1G24610
AT1G266101.015722760.000000000.0000000000.0000000000.0000000000.0000000000.0000000001.015722760.0000000000.0000000000.00000000AT1G26610AT1G26610
BZIP490.988789880.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.988789880.0000000000.0000000000.00000000AT3G56660BZIP49
AT1G217801.870338220.057706170.0393363170.0000000000.0332685270.0028638080.0539753500.948782700.0611032840.2522829910.42101907AT1G21780AT1G21780
IWS11.729106710.062411600.0637627950.0344526580.1356432620.1012515150.1426442790.939148560.1292022900.0000000000.12058975AT1G32130IWS1
AT5G035001.597940870.127298660.2105058170.0082903780.1396569520.0278034530.0757809620.911506330.0594985730.0000000000.03759974AT5G03500AT5G03500
AT4G196301.515044060.206877370.1277476300.0268342540.0502620160.2110769710.0000000000.892245820.0000000000.0000000000.00000000AT4G19630AT4G19630
AT3G605801.389604500.000000000.0000000000.0000000000.0000000000.3675760830.1188632170.888677300.0144878960.0000000000.00000000AT3G60580AT3G60580
AT3G104701.211309060.000000000.3586280100.0000000000.0000000000.0000000000.0000000000.852681050.0000000000.0000000000.00000000AT3G10470AT3G10470
AL21.445236370.000000000.0732880530.0337791020.0437410700.0486549590.0556079450.840035870.1333585710.0171266420.19964416AT3G11200AL2
HB340.967864930.012279900.0178014720.0000000000.0086042070.0000000000.0442697490.734674190.1461483030.0040871150.00000000AT3G28920HB34
BZIP240.694735390.000000000.0000000000.0000000000.0000000000.0000000000.0365015520.630585140.0276486980.0000000000.00000000AT3G51960BZIP24
GIF30.686308060.000000000.0000000000.0041451890.0301953850.0000000000.0411227580.610844730.0000000000.0000000000.00000000AT4G00850GIF3
AT5G067700.827096970.027881500.0349077870.0311560370.0729258740.0030457490.0021277200.591470180.0040716340.0186447510.04086574AT5G06770AT5G06770
AT3G221000.681270600.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.554748790.1265218150.0000000000.00000000AT3G22100AT3G22100
FBH20.922742600.039680200.0084042890.0141273490.0294444350.0166007780.0123690000.547122250.1795379700.0260850880.04937124AT4G09180FBH2
AT3G499300.716137410.012025370.0494257900.0478563450.0976443910.0105391270.0000000000.459939850.0284750420.0000000000.01023149AT3G49930AT3G49930
JAZ110.762668530.056728550.0267753960.0141273490.0310674210.0169299720.0107245100.394861790.1921792730.0059666710.01330760AT3G43440JAZ11
PIF40.435323470.000000000.0000000000.0000000000.0038240920.0000000000.0055116060.371843510.0541442640.0000000000.00000000AT2G43010PIF4
AT5G180900.528263620.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.318182930.1050241890.0695302280.03552627AT5G18090AT5G18090
ARR150.298651520.000000000.0000000000.0154440150.0000000000.0000000000.0000000000.283207510.0000000000.0000000000.00000000AT1G74890ARR15
AGL640.275147930.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.275147930.0000000000.0000000000.00000000AT1G29962AGL64
AT3G458800.410747580.087314050.0288672890.0000000000.0114722750.0000000000.0000000000.242817480.0402764830.0000000000.00000000AT3G45880AT3G45880
AT1G240400.275130440.000000000.0000000000.0000000000.0028894490.0000000000.0000000000.217014850.0000000000.0552261420.00000000AT1G24040AT1G24040
AT1G768700.331542410.000000000.0000000000.0000000000.0000000000.0071898770.0511416930.215189910.0580209310.0000000000.00000000AT1G76870AT1G76870
AT2G222000.204178190.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.157943070.0000000000.0462351270.00000000AT2G22200AT2G22200
OFP100.093847490.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.093847490.0000000000.0000000000.00000000AT5G22240OFP10
AT4G082500.106887390.000000000.0123529440.0000000000.0241406500.0000000000.0000000000.070393800.0000000000.0000000000.00000000AT4G08250AT4G08250
ORC1A0.051858960.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.032238320.0000000000.0196206440.00000000AT4G14700ORC1A
AT5G469150.043341050.000000000.0000000000.0000000000.0000000000.0150780470.0000000000.028263010.0000000000.0000000000.00000000AT5G46915AT5G46915
In [209]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(xyl_rank[1:10,], aes(x=reorder(GeneName, xyl, decreasing = FALSE),  y=xyl)) + geom_point(size=4)+ 
  labs(title="Xylem-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [210]:
write.csv(xyl_rank,"Xylem_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [211]:
tf_rank <- xyl_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [212]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [213]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Xylem ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

LRC¶

In [214]:
lrc_rank <- bc_rank[which(bc_rank$lrc*2 > bc_rank$all),]%>% arrange(desc(lrc))
lrc_rank$GeneName <- rownames(lrc_rank)
In [215]:
lrc_rank
A data.frame: 28 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT1G6892012.0284565180.802697890.0660315410.352441620.1290293700.0000000000.0000000000.000000000.0500391166.0691238644.55909312AT1G68920AT1G68920
ANL2 9.7942586302.666776160.4793002640.573032140.1512162220.0000000000.0000000000.000000000.0000000004.9779558790.94597797AT4G00730ANL2
OFP6 4.8652095700.811113280.0000000000.000000000.0000000000.0000000000.0000000000.000000000.0000000004.0310243080.02307198AT3G52525OFP6
ASL1 7.1397113740.929049940.1603060170.214140760.0801689410.0000000000.0000000000.000000000.0000000003.5879467212.16809900AT5G66870ASL1
AT1G05805 6.4225092850.532165200.2865052240.082556750.0000000000.0000000000.0000000000.000000000.0000000003.2281660382.29311608AT1G05805AT1G05805
AT1G69030 5.6498379210.410920760.1208565580.162130300.3013107240.0325855930.0072059120.793173400.1434027443.1347536250.54349831AT1G69030AT1G69030
AT5G48560 5.8770414180.569880540.0280087270.164057860.0951365460.0383547310.1388697330.000000000.1749610653.1185481241.54922409AT5G48560AT5G48560
AIL5 5.2913411180.474787520.0166018830.107455520.0400844710.0000000000.0222007450.000000000.0000000003.1045434811.52566750AT5G57390AIL5
WRKY11 5.3112011790.758932190.3331316270.173381400.1668245820.1114997560.2607806700.200353940.0550425652.7936047470.45764970AT4G31550WRKY11
AT3G60670 4.4912011020.198040700.0000000000.098182410.0038240920.0000000000.0041188490.000000000.0000000002.6289301961.55810485AT3G60670AT3G60670
LBD4 4.6211087220.734100690.0390183970.263328250.1489089200.0000000000.0000000000.000000000.0189695842.3484011371.06838175AT1G31320LBD4
AT1G21000 4.4136755360.187640470.0535460950.000000000.0086042070.2085041620.4341597160.000000000.3591349192.3199469750.84213899AT1G21000AT1G21000
AT5G62610 4.0989122150.529852010.1697299620.159883800.1572103220.0238036030.0000000000.039328290.1238122812.1525602710.74273168AT5G62610AT5G62610
AT1G09250 4.0028719980.447670140.0631717570.318257130.2579404430.0699152890.0413960540.000000000.1002853992.0754943880.62874139AT1G09250AT1G09250
GRF2 2.3865411670.371990830.1632654930.152984130.0612510270.0266496150.0000000000.000000000.0238953611.4879903910.09851432AT4G37740GRF2
HSF A4A 2.2284405540.067691980.0184638450.061557430.1593727790.0070126230.0237867660.000000000.0202962721.1734197930.69683906AT4G18880HSF A4A
AGL20 1.6762384460.055748000.0000000000.032566990.0236009540.0000000000.0000000000.000000000.0000000001.1464236830.41789882AT2G45660AGL20
TOE3 2.0567343820.112610320.0000000000.315068860.1253079660.0000000000.0040594240.024069620.0286098741.0815205090.36548781AT5G67180TOE3
NAC016 1.5604019300.000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000.0000000000.8015242400.75887769AT1G34180NAC016
MYB3R-4 1.1844720300.123114290.0000000000.127209030.0319635290.0447765040.0165619280.000000000.0078088140.6591434990.17389444AT5G11510MYB3R-4
AGL94 1.2210910710.045013350.0000000000.000000000.0000000000.0000000000.0000000000.000000000.0000000000.6158884740.56018925AT1G69540AGL94
HDG2 0.4261177880.058436170.0166018830.000000000.0000000000.0000000000.0000000000.000000000.0000000000.2488850130.10219472AT1G05230HDG2
AT2G20110 0.2826126720.016110990.0000000000.010791470.0066921610.0000000000.0109637880.000000000.0000000000.1428708750.09518338AT2G20110AT2G20110
AT5G25790 0.1988903840.000000000.0000000000.000000000.0066921610.0000000000.0000000000.000000000.0000000000.1057383260.08645990AT5G25790AT5G25790
NAC063 0.1211662540.022908840.0032938980.000000000.0000000000.0000000000.0000000000.007557840.0000000000.0874056730.00000000AT3G55210NAC063
HSFC1 0.1059233080.000000000.0000000000.000000000.0000000000.0085924020.0189941530.000000000.0078150220.0532034070.01731832AT3G24520HSFC1
AT3G19184 0.0795820420.000000000.0190695290.000000000.0000000000.0000000000.0000000000.000000000.0141539000.0463586120.00000000AT3G19184AT3G19184
AT2G23060 0.0053603950.000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000.0000000000.0053603950.00000000AT2G23060AT2G23060
In [216]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(lrc_rank[1:10,], aes(x=reorder(GeneName, lrc, decreasing = FALSE),  y=lrc)) + geom_point(size=4)+ 
  labs(title="LRC-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [217]:
write.csv(lrc_rank,"LRC_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [218]:
tf_rank <- lrc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [219]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [220]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Lateral Root Cap ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Columella¶

In [221]:
col_rank <- bc_rank[which(bc_rank$col*2 > bc_rank$all),]%>% arrange(desc(col))
col_rank$GeneName <- rownames(col_rank)
In [222]:
col_rank
A data.frame: 48 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
NAC04215.8481321760.0138118930.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000006.8549297808.979390503AT2G43000NAC042
RAP2.410.0060931420.1862974800.0084484290.2821682550.1821065090.1167626480.2903898730.1780807430.0962542102.9793644875.686220508AT1G78080RAP2.4
LBD41 9.4560006050.3070087090.1915209740.0000000000.0703377720.0695426550.1397976620.0037789200.0000000003.4697909355.204222979AT3G02550LBD41
AT3G52440 9.4291833340.9854461420.0000000000.1728783680.0126119430.0000000000.0000000000.0000000000.0000000003.2363052655.021941616AT3G52440AT3G52440
WRKY33 8.8743550070.4525221810.1379729300.8986943960.3599521090.0617460410.0199956970.0000000000.0000000002.1199993324.823472321AT2G38470WRKY33
FBH4 8.3942658630.0950624630.0165151360.3772580060.0202833390.0000000000.0000000000.0000000000.0000000003.4825547614.402592158AT2G42280FBH4
NAM 5.0322795760.0494358080.0000000000.0871435520.0124282980.0115672650.0357363050.0000000000.0000000001.7422435503.093724799AT1G52880NAM
MYB55 5.1680108800.0000000000.0000000000.2046377100.0379204390.1900363680.5425491360.0000000000.6707591270.5564169872.965691113AT4G01680MYB55
ARF10 5.3310938350.3114598490.0051950390.0630379070.0911952140.0000000000.0000000000.0529483780.0598130081.8058654382.941579001AT2G28350ARF10
MIF3 5.0218113020.0000000000.0000000000.0000000000.1772257300.0000000000.0000000000.0000000000.0000000001.9804545592.864131012AT1G18835MIF3
WRKY26 4.6937628370.0851642800.0487267490.0000000000.0000000000.1240441650.0900233190.0000000000.0770821191.4542931622.814429043AT5G07100WRKY26
BZIP25 3.8344850780.3541324740.0906440910.2177553900.1264874690.0140112260.0175419710.0000000000.0416567300.6356470212.336608705AT3G54620BZIP25
AT2G41835 2.6926510000.1054826330.0135993280.0000000000.0086042070.0000000000.0000000000.0000000000.0000000000.4970791772.067885655AT2G41835AT2G41835
TGA7 3.9061701540.0953750830.1823617540.7698392620.0097670870.0000000000.0069043640.0000000000.0000000000.8757603931.966162211AT1G77920TGA7
AT3G25790 3.2294685300.1289923250.0260936090.2158063650.0000000000.0000000000.0000000000.0000000000.0000000000.9307663261.927809906AT3G25790AT3G25790
SNI1 2.5464694520.0000000000.0000000000.0242567440.0000000000.0000000000.0110216810.4531979440.1081237130.2711288531.678740517AT4G18470SNI1
NAC052 2.9828784350.1240931790.0063252870.0122628660.0498102580.0217515240.0453569860.1047890210.0256988041.0167606111.576029899AT3G10490NAC052
RR1 2.5668955890.2147788940.0578482620.1671764910.0279924940.0261056600.0252364750.0037789200.0746609450.4012872621.568030186AT3G16857RR1
HMG 2.7630257640.0595760670.0233711730.3574208250.1698623730.1489645950.1103865800.0113367590.1169024340.2838922601.481312697AT3G28730HMG
TGA4 2.4828179250.0552475720.0721298490.2097521800.0912515790.0686348560.2024007890.0000000000.2347461710.2661086611.282546268AT5G10030TGA4
AT2G42300 2.2383056590.0987587500.0259751950.0944494640.0028680690.0000000000.0000000000.0000000000.0150661070.7740686871.227119386AT2G42300AT2G42300
TLP7 2.1341304490.0612853370.0310087400.1290162090.0371980880.0082446600.0576190570.0308710900.0735959320.5376220921.167669243AT1G53320TLP7
BRM 2.2688155580.1178277950.0269514530.2465658130.0798853780.0261077700.0529474490.0075578400.0707812730.4873948491.152795939AT2G46020BRM
SYD 2.2046037530.0948004150.0070961800.0407771670.0498190920.0834558520.1132371510.0213698470.1993449460.4590978881.135605216AT2G28290SYD
CHR11 1.9514844130.0517716200.0079805540.0077939180.0397617250.0703751250.0902402630.1266142900.1749160380.3565074731.025523407AT3G06400CHR11
EIN3 1.5381770100.0770617880.0326866720.0886618420.0467628340.0048490740.0210919910.0125743830.0302425170.2868148630.937431046AT3G20770EIN3
ATRX 1.7268833170.0458210610.0125490960.0301615080.0498392360.0873372800.0911324330.0138450310.1577254360.3052104130.933261821AT1G08600ATRX
AT1G02080 1.7915663610.0809621720.0242064460.1033349330.0297820740.0314490720.0619323250.1105797200.1831014660.2663378790.899880274AT1G02080AT1G02080
PC-MYB1 1.4294789980.0834080500.0216645310.0611217650.0305881310.0000000000.0027260910.0100991360.0620123850.3494326790.808426232AT4G32730PC-MYB1
AT2G44430 1.5893656610.1309974720.0691998950.1322958250.0935115650.0000000000.0000000000.0309818370.0128911050.3175261050.801961857AT2G44430AT2G44430
SDG2 1.3903753120.0594487290.0531741830.1222792790.0538533210.0089178470.0248413870.0075578400.0549410380.2248464110.780515277AT4G15180SDG2
EICBP.B 1.4720346740.0734487300.0511287460.2020148210.0505462260.0046047700.0063290470.0188615750.1154640690.2101660150.739470676AT5G09410EICBP.B
AT5G14140 1.3301426480.0000000000.0626217080.0192942950.1054278440.0124609760.0084769260.0000000000.0556767740.3553387670.710845358AT5G14140AT5G14140
AT5G65910 1.3093937050.0560693800.0309505430.0398292200.1015130430.0420780390.0297377620.1127027000.0603721480.1741461540.661994717AT5G65910AT5G65910
MBD9 1.1956684360.1199291740.0315893360.0000000000.0076481840.0000000000.0197650820.0050495680.0455076860.3646611690.601518238AT3G01460MBD9
E2F1 0.9538482550.0317202670.0583046250.0058369710.0095602290.0150837540.0071714060.0000000000.0306313020.3032114490.492328251AT5G22220E2F1
DRIP2 0.6968988600.0117708420.0088649290.0000000000.0028680690.0029823030.0436366870.0113367590.0078307860.1321743190.475434165AT2G30580DRIP2
AT3G08505 0.7443657100.0000000000.0431991410.0000000000.0028680690.0089203510.0437666690.0000000000.0000000000.2324338190.413177661AT3G08505AT3G08505
AT3G54460 0.7070805130.0117708420.0051950390.0058369710.0303004560.0113974510.0198031610.0000000000.0000000000.2308968650.391879727AT3G54460AT3G54460
AT4G13040 0.5531914740.0352656180.0393791310.0369862170.0107231100.0000000000.0000000000.0000000000.0000000000.1031303480.327707050AT4G13040AT4G13040
RING1 0.3066289350.0060438770.0000000000.0000000000.0000000000.0000000000.0134313200.0000000000.0000000000.0978753150.189278424AT5G10380RING1
BPC7 0.3714930130.0295338100.0000000000.0000000000.0038240920.0000000000.0053927580.0000000000.0000000000.1440920600.188650294AT2G35550BPC7
NF-YC12 0.1112239910.0000000000.0000000000.0077220080.0000000000.0000000000.0058609630.0000000000.0000000000.0174023880.080238632AT5G38140NF-YC12
AT2G33550 0.0811554750.0000000000.0046866560.0000000000.0038240920.0000000000.0000000000.0000000000.0000000000.0096962420.062948486AT2G33550AT2G33550
AT1G18560 0.0749642850.0000000000.0032938980.0000000000.0028680690.0000000000.0090320840.0000000000.0062755230.0107790310.042715680AT1G18560AT1G18560
AT4G36050 0.0608596710.0000000000.0000000000.0000000000.0066921610.0000000000.0101448160.0000000000.0044568590.0000000000.039565836AT4G36050AT4G36050
BEH1 0.0312721430.0000000000.0059612990.0000000000.0028680690.0000000000.0000000000.0000000000.0000000000.0059219770.016520798AT3G50750BEH1
AT5G08520 0.0088431930.0000000000.0000000000.0000000000.0038240920.0000000000.0000000000.0000000000.0000000000.0000000000.005019101AT5G08520AT5G08520
In [223]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(col_rank[1:10,], aes(x=reorder(GeneName, col, decreasing = FALSE),  y=col)) + geom_point(size=4)+ 
  labs(title="Columella-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [224]:
write.csv(col_rank,"Columella_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [225]:
tf_rank <- col_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [226]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [227]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Columella ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Add tissue level¶

In [228]:
bc_rank <- bc_rank %>% mutate(ground=cor+end, epi=atri+tri, stele=per+pro+xyl+phl, epilrc=atri+tri+lrc, rc=lrc+col)
In [229]:
head(bc_rank)
A data.frame: 6 x 17
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrc
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl>
BZIP931.422130.0000000.0000000.00000000 0.0057361388.5531661311.880881070.0200331510.9623184 0.0000000.000000AT5G24800 0.005736138 0.00000031.41639871 0.00000 0.000000
AT3G4343029.059650.0000000.0000000.00544388 0.0293608339.2065652611.246261281.83863137 6.7333880 0.0000000.000000AT3G43430 0.034804713 0.00000029.02484588 0.00000 0.000000
PLT123.975143.9406080.0000002.00953127 1.4920576860.05699842 0.000000000.00000000 0.0000000 9.1480087.327940AT3G20840 3.501588961 3.940608 0.0569984213.0886216.475948
HAT733.139776.2009145.5473298.04274907 5.8771250101.24427942 0.000000000.00000000 0.0122843 4.2849221.930171AT5G1515013.91987408411.748243 1.2565637216.03317 6.215093
MYB3620.574180.0000000.0000006.2909368910.7485442723.53469871 0.000000000.00000000 0.0000000 0.0000000.000000AT5G5762017.039481158 0.000000 3.53469871 0.00000 0.000000
GATA233.122736.6237926.5965572.46621779 2.0516644240.80375905 0.038818940.09406244 0.155952912.1035092.188393AT2G45050 4.51788221613.220349 1.0925933625.3238614.291902

Ground Tissue¶

In [230]:
ground_rank <- bc_rank[which(bc_rank$ground*2 > bc_rank$all),]%>% arrange(desc(ground))
ground_rank <- ground_rank[-c(match(rownames(cor_rank), rownames(ground_rank)),match(rownames(end_rank), rownames(ground_rank))),]
ground_rank$GeneName <- rownames(ground_rank)
In [231]:
ground_rank
A data.frame: 58 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
MYB1223.69257140.0864296360.1166392397.7881923915.783300371.9297495290.5162059063.3712485251.2104030570.1105297352.779872975AT2G4746013.571492760.2030688757.0276070170.313598612.890402710MYB12
MYB311.88418800.5161965960.0897964482.7333481495.590480602.3470206320.0238600540.3927575180.0512725020.1356770550.003778406AT1G22640 8.323828740.6059930442.8149107060.741670100.139455462MYB3
JKD 8.47320710.0000000000.0000000003.7076523552.975241020.0464051720.0000000000.0000000000.0000000000.0000000001.743908530AT5G03150 6.682893380.0000000000.0464051720.000000001.743908530JKD
AN3 9.18227311.1646519150.1922139032.3373731133.153468452.1002335340.0583175490.0000000000.0586833070.1123122660.005019101AT5G28640 5.490841561.3568658182.2172343901.469178080.117331367AN3
ARR3 8.59131660.2778091060.0423986062.3429442553.133539021.0249166770.2925360400.0000000000.7614373770.2278707820.487864717AT1G59940 5.476483270.3202077122.0788900940.548078490.715735499ARR3
AtHB23 8.87530930.5014889740.3746815173.1546638391.836225251.7749050090.7592271640.1233710460.2383665990.0477511440.064628773AT1G26960 4.990889090.8761704912.8958698190.923921630.112379917AtHB23
GATA16 9.17553320.0000000000.0000000002.7174505491.934279241.9638030570.3854714340.6008956130.0247375770.2745827121.274312995AT5G49300 4.651729780.0000000002.9749076800.274582711.548895708GATA16
ULT1 7.00167080.1127003380.0046866562.2290748632.077876491.5824338590.1477669120.1956643040.0320783140.3944812960.224907778AT4G28190 4.306951350.1173869941.9579433890.511868290.619389073ULT1
HSFB4 5.27354230.1208611440.0000000001.6340555632.582650540.3815173080.4231294310.0999795960.0313487290.0000000000.000000000AT1G46264 4.216706100.1208611440.9359750640.120861140.000000000HSFB4
ABS2 7.54307990.1167874660.0279953422.4047334771.383709000.1576256860.0313174930.5443615490.2630060400.3975564022.215987470AT2G36080 3.788442480.1447828080.9963107680.542339212.613543872ABS2
AT5G57150 6.29223140.1501262180.0000000000.9747170012.568688940.6661766610.3266898930.0000000001.3952972460.1076607020.102874696AT5G57150 3.543405950.1501262182.3881638000.257786920.210535398AT5G57150
MNP 5.78905760.4554905250.0760234921.5754653921.536364380.2616552400.0859350051.6499524410.1481711240.0000000000.000000000AT3G50870 3.111829780.5315140172.1457138100.531514020.000000000MNP
HB5 4.31013110.0000000000.0000000001.6314994170.906816820.6181555040.6747495570.0049835190.4676665170.0000000000.006259796AT5G65310 2.538316240.0000000001.7655550970.000000000.006259796HB5
AT3G24120 2.97488070.0000000000.0000000001.3188391110.949213030.4433223010.1993935140.0000000000.0465740130.0000000000.017538693AT3G24120 2.268052140.0000000000.6892898290.000000000.017538693AT3G24120
AT3G23690 4.40704590.1746987580.0079298030.7049416931.532397250.8006090340.4253400330.2074597390.5156806530.0354512590.002537712AT3G23690 2.237338950.1826285611.9490894580.218079820.037988971AT3G23690
AT1G63100 3.11244800.4659635960.1128589091.4328439660.799259690.0868923370.0000000000.0000000000.0000000000.2146295490.000000000AT1G63100 2.232103650.5788225050.0868923370.793452050.214629549AT1G63100
PRMT3 4.01600720.5351166990.3802726811.0872825431.107173930.2554908040.0000000000.0000000000.0000000000.4842689570.166401584AT3G12270 2.194456480.9153893800.2554908041.399658340.650670542PRMT3
AT3G61420 3.54194991.1635658770.1610877411.5393860080.623169080.0148998160.0225473500.0000000000.0000000000.0000000000.017294004AT3G61420 2.162555081.3246536180.0374471661.324653620.017294004AT3G61420
RGL3 3.86567580.1481678090.0719887451.8299412080.171824690.0000000000.0053023230.0405989350.0000000000.3330556431.264796477AT5G17490 2.001765900.2201565540.0459012570.553212201.597852120RGL3
AT4G36860 2.92757050.0333670050.0000000000.6913069760.949220660.0559194550.0463805430.5379920750.1987860420.1426713890.271926374AT4G36860 1.640527630.0333670050.8390781160.176038390.414597763AT4G36860
HB6 2.60074640.3154254510.0610800340.9128251030.528624540.1346086020.0874868440.0000000000.1101698040.1382873490.312238711AT2G22430 1.441449640.3765054850.3322652500.514792830.450526060HB6
PS1 2.65304630.5461687040.0567557361.0050398090.387996680.0207875580.0000000000.0000000000.0000000000.5590720010.077225845AT1G34355 1.393036490.6029244400.0207875581.161996440.636297846PS1
COL4 2.41693180.0632008040.0000000000.9668486420.419080130.1431676130.0906637770.0025082720.0000000000.1656138840.565848640AT5G24930 1.385928770.0632008040.2363396620.228814690.731462524COL4
AT4G00940 2.39930250.0000000000.0000000000.2039355521.049182490.0056886670.0350190851.1054766770.0000000000.0000000000.000000000AT4G00940 1.253118040.0000000001.1461844290.000000000.000000000AT4G00940
SUVR2 2.31347110.3250307770.0000000000.7033236060.509642370.1200012320.0124753950.0000000000.0357915550.4886700600.118536062AT5G43990 1.212965970.3250307770.1682681820.813700840.607206122SUVR2
WRKY69 1.75225340.0406523560.2581016050.8705342380.137498810.0000000000.0000000000.0000000000.0044974680.0474182170.393550683AT3G58710 1.008033050.2987539610.0044974680.346172180.440968900WRKY69
ZFN1 1.95394160.0389333910.0000000000.7276482970.266327040.0689011100.0644642350.0000000000.0484012620.2543593190.484906984AT3G02830 0.993975340.0389333910.1817666070.293292710.739266304ZFN1
LCL1 1.73295800.0190186720.0000000000.3039824130.609390170.2326862400.3415142270.0417717690.0693097900.0000000000.115284710AT5G02840 0.913372580.0190186720.6852820260.019018670.115284710LCL1
3xHMG-box1 1.54506540.1963381400.1118614050.4845293480.428472050.1118768880.0000000000.0000000000.0000000000.1715553710.040432152AT4G11080 0.913001400.3081995450.1118768880.479754920.2119875243xHMG-box1
bZIP52 1.62454330.0460082590.0150144070.4323201470.477744010.1017673170.1070196510.0354009390.1816697290.1617494490.065849407AT1G06850 0.910064160.0610226660.4258576360.222772120.227598857bZIP52
APRR2 1.77144810.0000000000.0000000000.4857891460.415848020.1029864460.1883300260.0000000000.5354602740.0000000000.043034202AT4G18020 0.901637160.0000000000.8267767450.000000000.043034202APRR2
AT5G58900 1.31060620.0511044080.1106600950.5979923030.221408080.0000000000.0074187250.0075248150.2492027730.0166099350.048685091AT5G58900 0.819400380.1617645020.2641463140.178374440.065295026AT5G58900
AT5G41920 1.39866890.0000000000.0000000000.1093054390.637104350.6522590840.0000000000.0000000000.0000000000.0000000000.000000000AT5G41920 0.746409790.0000000000.6522590840.000000000.000000000AT5G41920
AT5G58620 1.44024320.0866088130.0439899380.0436709390.700414970.2501502410.2638506780.0000000000.0419488430.0096087800.000000000AT5G58620 0.744085910.1305987510.5559497620.140207530.009608780AT5G58620
AT1G16640 1.30641480.3563290740.1210846270.3258302970.347478150.0879308570.0000000000.0000000000.0000000000.0677617870.000000000AT1G16640 0.673308440.4774137010.0879308570.545175490.067761787AT1G16640
AT3G61180 1.17274610.0368575370.0812970900.3514432500.268539510.0939608440.2040218980.0615832890.0687265650.0000000000.006316118AT3G61180 0.619982760.1181546270.4282925960.118154630.006316118AT3G61180
GATA27 1.00101430.0138118930.1101961890.2395032680.380185870.0426728910.1193673120.0125743830.0677245360.0000000000.014977929AT5G47140 0.619689140.1240080820.2423391220.124008080.014977929GATA27
AT5G23930 1.15545720.3411553090.0000000000.2173700510.401542080.0960154920.0000000000.0000000000.0000000000.0993742940.000000000AT5G23930 0.618912130.3411553090.0960154920.440529600.099374294AT5G23930
ETR2 0.88104760.0258683060.0000000000.4128571610.197454380.0000000000.0074187250.0000000000.0000000000.0000000000.237449024AT3G23150 0.610311540.0258683060.0074187250.025868310.237449024ETR2
MYB14 1.15984970.0807363910.0000000000.4345234510.164334520.1127163030.1677409740.1008618310.0000000000.0000000000.098936221AT2G31180 0.598857970.0807363910.3813191080.080736390.098936221MYB14
AT2G18850 1.00431990.2657980960.0497909860.4403681430.133862580.0224689840.0082971220.0075578400.0000000000.0345162300.041659886AT2G18850 0.574230720.3155890810.0383239450.350105310.076176116AT2G18850
AT5G66270 1.03816640.2534354140.0895383980.2234879350.304123810.0662421040.0000000000.0000000000.0000000000.0698239980.031514723AT5G66270 0.527611750.3429738120.0662421040.412797810.101338721AT5G66270
MYB70 0.67565270.0040932990.0107660700.1188620410.314259520.0702598080.0069304810.0000000000.0477445530.0338485690.068888390AT2G23290 0.433121560.0148593690.1249348430.048707940.102736959MYB70
ARR9 0.79854960.0295996490.0473706850.0963436800.326585620.0369019190.1010634310.1112310550.0238158520.0000000000.025637763AT3G57040 0.422929300.0769703340.2730122570.076970330.025637763ARR9
ING1 0.68008060.0098514560.0249338840.0242812860.329720880.0366061050.0484149020.0162872550.1238603080.0075761040.058548459AT3G24010 0.354002160.0347853410.2251685700.042361450.066124563ING1
AT5G58280 0.65895190.0957226370.0000000000.2466240490.096212510.0234482290.0000000000.0000000000.0000000000.1283550470.068589410AT5G58280 0.342836560.0957226370.0234482290.224077680.196944457AT5G58280
AHBP-1B 0.54570620.0000000000.0148912570.1095225030.191954730.0483011740.0251708400.0113367590.0705349840.0257646250.048229351AT5G06950 0.301477230.0148912570.1553437570.040655880.073993975AHBP-1B
ZFN3 0.49906810.0400703620.1205830450.1293868420.161321780.0000000000.0000000000.0000000000.0389085740.0000000000.008797508AT5G16540 0.290708620.1606534070.0389085740.160653410.008797508ZFN3
AT5G43530 0.47674400.0803777870.0786337410.1085887390.153904810.0552389450.0000000000.0000000000.0000000000.0000000000.000000000AT5G43530 0.262493550.1590115270.0552389450.159011530.000000000AT5G43530
EPR1 0.42933090.0040932990.0000000000.1269303250.134669000.0000000000.0106499170.0800856970.0201457330.0249938400.027763127AT1G18330 0.261599320.0040932990.1108813460.029087140.052756966EPR1
AGL65 0.47193250.0564498540.0000000000.1616795300.092155180.0377861530.0053927580.0000000000.0000000000.0780368380.040432152AT1G18750 0.253834710.0564498540.0431789110.134486690.118468990AGL65
AT5G07810 0.38874790.0352574200.0253987760.1489578800.099976340.0000000000.0000000000.0000000000.0000000000.0492405380.029916967AT5G07810 0.248934220.0606561950.0000000000.109896730.079157505AT5G07810
NSI 0.42228330.0327642530.0682381760.0685225500.143132370.0552362310.0181319180.0049835190.0224204140.0000000000.008853830AT1G32070 0.211654920.1010024290.1007720830.101002430.008853830NSI
AT2G46735 0.30314130.0287372660.0383287060.0807089600.077512340.0000000000.0446359830.0025082720.0156541220.0000000000.015055632AT2G46735 0.158221300.0670659720.0627983760.067065970.015055632AT2G46735
AT5G05130 0.13706650.0066199890.0000000000.0411661010.051403270.0000000000.0000000000.0000000000.0000000000.0174141170.020462979AT5G05130 0.092569370.0066199890.0000000000.024034110.037877096AT5G05130
AT5G13920 0.12588540.0000000000.0158038190.0081176770.057863790.0174557090.0177493040.0000000000.0088950960.0000000000.000000000AT5G13920 0.065981470.0158038190.0441001080.015803820.000000000AT5G13920
AT5G47790 0.12164550.0000000000.0091878340.0083118560.055328250.0000000000.0074187250.0087954630.0252470700.0035778630.003778406AT5G47790 0.063640100.0091878340.0414612580.012765700.007356270AT5G47790
AT2G17150 0.11409570.0000000000.0000000000.0083118560.052299740.0000000000.0164506470.0000000000.0060959250.0000000000.030937564AT2G17150 0.060611590.0000000000.0225465720.000000000.030937564AT2G17150
In [232]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(ground_rank[1:10,], aes(x=reorder(GeneName, ground, decreasing = FALSE),  y=ground)) + geom_point(size=4)+ 
  labs(title="Ground Tissue-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [233]:
write.csv(ground_rank,"Ground_Tissue_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [234]:
tf_rank <- ground_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [235]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [236]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Ground Tissue ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Epidermis¶

In [237]:
epi_rank <- bc_rank[which(bc_rank$epi*2 > bc_rank$all),]%>% arrange(desc(epi))
epi_rank <- epi_rank[-c(match(rownames(atri_rank), rownames(epi_rank)),match(rownames(tri_rank), rownames(epi_rank))),]
epi_rank$GeneName <- rownames(epi_rank)
In [238]:
epi_rank
A data.frame: 50 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
WRKY7514.272476254.501219716.356822930.1053303910.0208022430.0000000000.0000000000.0000000000.000000000.5629874452.725313541AT5G130800.12613263410.858042630.00000000011.421030083.288300987WRKY75
KDR11.626359975.169540664.616933690.6871327130.4211657300.1226053970.0000000000.0000000000.000000000.4672488580.141732932AT1G269451.108298444 9.786474340.12260539710.253723200.608981789KDR
TGA1011.884489684.954361674.442996601.5686506720.8550815700.0000000000.0000000000.0000000000.000000000.0633991620.000000000AT5G068392.423732242 9.397358270.000000000 9.460757430.063399162TGA10
ATS16.507260045.441120993.305852250.9686131010.7076132340.0513166030.0000000000.0000000000.000000005.9461924270.086551437AT5G426301.676226335 8.746973240.05131660314.693165666.032743865ATS
ATMYC1 9.781450513.776557164.621138270.6783392080.6095030070.0959128670.0000000000.0000000000.000000000.0000000000.000000000AT4G004801.287842216 8.397695430.095912867 8.397695430.000000000ATMYC1
ATHB1312.940666613.438230124.686686731.2758192601.0399185861.3053706360.2842574570.0000000000.115306230.7429120930.052165503AT1G697802.315737846 8.124916841.704934322 8.867828940.795077596ATHB13
ARR5 8.893764533.901532183.605436100.3239712850.2201535260.0046047700.0366778280.0286831060.043664440.3153861960.413655090AT3G481000.544124811 7.506968280.113630146 7.822354480.729041287ARR5
EGL3 9.211905723.311467322.931643851.6168579951.2135902910.1383462650.0000000000.0000000000.000000000.0000000000.000000000AT1G636502.830448286 6.243111170.138346265 6.243111170.000000000EGL3
RSL1 7.020703792.795039563.391678650.3911792760.4428063040.0000000000.0000000000.0000000000.000000000.0000000000.000000000AT5G378000.833985580 6.186718210.000000000 6.186718210.000000000RSL1
TRY 9.062594144.425836421.738613161.3264729881.1877531020.0655211480.0000000000.0000000000.026581140.2918161910.000000000AT5G532002.514226090 6.164449580.092102284 6.456265770.291816191TRY
WRKY65 7.769712222.975799852.870496270.0652323450.1982809790.0000000000.0000000000.0000000000.000000001.1744741400.485428646AT1G292800.263513325 5.846296110.000000000 7.020770251.659902786WRKY65
NFL 8.517714602.694588882.660751821.2118072520.9573624560.0000000000.0000000000.0000000000.000000000.7668090480.226395146AT5G656402.169169709 5.355340700.000000000 6.122149750.993204194NFL
WRKY31 4.085171471.792051161.933794570.0000000000.0000000000.0000000000.0000000000.0000000000.000000000.1132477380.246078001AT4G220700.000000000 3.725845740.000000000 3.839093470.359325739WRKY31
ARR4 6.729000872.217853531.498706090.3522429750.2598266370.0324735330.0934967020.9027029340.369386180.5889319390.413380355AT1G104700.612069613 3.716559621.398059346 4.305491561.002312294ARR4
BNQ3 5.059833262.397439800.928660230.0077220080.0000000000.0000000000.0000000000.0000000000.000000001.7140713660.011939866AT3G477100.007722008 3.326100020.000000000 5.040171391.726011231BNQ3
tny 5.941092000.070499842.929720902.8450540380.0097670870.0030457490.0830043830.0000000000.000000000.0000000000.000000000AT5G258102.854821125 3.000220740.086050132 3.000220740.000000000tny
AT3G14740 4.633606871.486286621.029103950.0524390060.0808533100.8575128950.2340594510.3119100700.158573340.4052688990.017599319AT3G147400.133292317 2.515390581.562055760 2.920659470.422868218AT3G14740
AT5G44260 4.249186370.515140671.900340950.3638761590.5441557810.0744472670.0000000000.0000000000.000000000.5093555640.341869975AT5G442600.908031940 2.415481620.074447267 2.924837180.851225540AT5G44260
WRI1 3.721516721.719597210.569620580.2583435790.1860744880.0882913350.0000000000.0000000000.000000000.8123604750.087229041AT3G543200.444418067 2.289217800.088291335 3.101578270.899589516WRI1
AT4G26810 3.392109731.241374120.940410310.2229324370.2618702270.4955606270.2246016160.0000000000.000000000.0053603950.000000000AT4G268100.484802664 2.181784430.720162242 2.187144820.005360395AT4G26810
NF-YC13 3.692518781.305162620.844044400.3879945070.6991914520.0029823030.0000000000.3336513670.000000000.1194921210.000000000AT5G432501.087185959 2.149207030.336633670 2.268699150.119492121NF-YC13
OFP13 2.834171960.772629821.239760710.3874209710.2561719920.0086693230.0031859210.0000000000.000000000.0930517190.073281496AT5G048200.643592963 2.012390530.011855244 2.105442250.166333215OFP13
HDG7 3.313419351.570343390.439639250.5309501840.4076754800.0000000000.0000000000.0000000000.000000000.3254346910.039376358AT5G521700.938625664 2.009982630.000000000 2.335417320.364811049HDG7
HRS1 2.759850651.312140460.594878470.2988849960.5194383760.0270896230.0074187250.0000000000.000000000.0000000000.000000000AT1G133000.818323372 1.907018930.034508348 1.907018930.000000000HRS1
HMGB2 2.757466940.624554631.070550530.1751730930.2446488600.2231631330.1655023000.0200991990.191852870.0085767340.033345588AT1G206930.419821953 1.695105160.600617505 1.703681890.041922322HMGB2
AT5G42700 2.668062471.146927620.231985850.4001510950.3627532220.2224921040.0000000000.2436237500.000000000.0601288280.000000000AT5G427000.762904317 1.378913470.466115854 1.439042290.060128828AT5G42700
MED6 1.447915330.472080330.532922500.0243530300.1872274870.0769842110.0107245100.0201322230.048969300.0410976190.033424122AT3G213500.211580518 1.005002830.156810246 1.046100450.074521741MED6
ORC1B 1.483648840.536213020.418056200.0000000000.0520707050.1594634480.0123565460.2626057530.000000000.0428831560.000000000AT4G126200.052070705 0.954269230.434425747 0.997152390.042883156ORC1B
LOL2 1.199352310.393967080.481637500.0327595660.0000000000.0461190870.0208319410.0063202160.010684840.1593274740.047704601AT4G216100.032759566 0.875604580.083956084 1.034932060.207032076LOL2
HFR1 1.495982070.386547560.436713100.4886239330.1840974660.0000000000.0000000000.0000000000.000000000.0000000000.000000000AT1G023400.672721399 0.823260670.000000000 0.823260670.000000000HFR1
HDG1 1.232609770.465290830.242723260.0809841940.0000000000.0000000000.0000000000.0000000000.000000000.3908172310.052794262AT3G611500.080984194 0.708014080.000000000 1.098831310.443611493HDG1
MBD6 0.959783690.284161100.421501790.0355296490.0086042070.1170488190.0053023230.0263211590.010593390.0449484720.005772775AT5G593800.044133855 0.705662890.159265694 0.750611360.050721247MBD6
NF-YC10 1.133700710.259954010.434104730.1005559770.1932024830.0200126720.0031859210.0000000000.012413800.0369392520.073331868AT1G079800.293758460 0.694058740.035612395 0.730997990.110271120NF-YC10
RSZ22a 1.184173490.411191170.275357270.0000000000.0553635230.1003035680.0222246980.0163863270.114853500.1586373570.029856069AT2G245900.055363523 0.686548440.253768098 0.845185800.188493427RSZ22a
WRKY3 0.931243260.310518170.243814230.0000000000.0028680690.0091372460.0273897730.0000000000.043439700.1315359840.162540092AT2G033400.002868069 0.554332390.079966716 0.685868380.294076077WRKY3
AT5G66770 1.090689440.456000430.094996340.1355192790.0742344840.0077216400.0124159700.0375433580.013389200.1890025630.069866180AT5G667700.209753764 0.550996770.071070168 0.739999330.258868743AT5G66770
AT3G57480 0.810653140.203614460.287397960.0062285220.0345538740.0028638080.0063605240.1261515230.000000000.0826661180.060816364AT3G574800.040782397 0.491012410.135375855 0.573678530.143482482AT3G57480
PUX2 0.713724390.286746220.179536200.0351511570.1052394530.0000000000.0278781120.0063202160.016581140.0059666710.050305224AT2G016500.140390610 0.466282420.050779464 0.472249090.056271895PUX2
NPR1 0.727842350.235964000.156675500.0495626690.0575096640.0048490740.0069043640.0000000000.000000000.0772673820.139109693AT1G642800.107072333 0.392639500.011753438 0.469906880.216377075NPR1
AT2G01060 0.603970900.093113770.299456810.0284852170.0558388370.0206283260.0000000000.0025082720.024011950.0425422710.037385446AT2G010600.084324054 0.392570580.047148546 0.435112850.079927717AT2G01060
AT1G76110 0.521559360.142193430.221338780.0595938200.0556294240.0372922960.0055116060.0000000000.000000000.0000000000.000000000AT1G761100.115223244 0.363532210.042803902 0.363532210.000000000AT1G76110
ATMAK3 0.565498720.201480930.144492580.0000000000.0334983700.0637148660.0290907610.0263203420.021265960.0404543910.005180522AT2G381300.033498370 0.345973510.140391929 0.386427900.045634913ATMAK3
CHR8 0.451705780.120969370.198714240.0000000000.0254134860.0000000000.0320103850.0000000000.026543830.0000000000.048054472AT2G187600.025413486 0.319683610.058554211 0.319683610.048054472CHR8
AT5G28300 0.442837430.186006530.121387460.0863383840.0047801150.0000000000.0000000000.0000000000.026748350.0000000000.017576592AT5G283000.091118498 0.307393990.026748349 0.307393990.017576592AT5G28300
WRKY54 0.360014760.142095820.081078570.0000000000.0000000000.0000000000.0192014860.0000000000.000000000.1127535680.004885314AT2G407500.000000000 0.223174390.019201486 0.335927960.117638881WRKY54
EMB2219 0.335854760.127437510.052771670.0220643790.0405830820.0251584020.0096304550.0000000000.000000000.0364322180.021777039AT2G217100.062647461 0.180209180.034788857 0.216641400.058209257EMB2219
AT2G37000 0.172972140.056940630.080660120.0312525440.0000000000.0000000000.0041188490.0000000000.000000000.0000000000.000000000AT2G370000.031252544 0.137600750.004118849 0.137600750.000000000AT2G37000
FRF1 0.198644600.042163370.080878020.0058369710.0289568310.0000000000.0260284420.0000000000.014780970.0000000000.000000000AT3G594700.034793803 0.123041390.040809407 0.123041390.000000000FRF1
AT3G51180 0.099525750.040510870.025093370.0000000000.0286191930.0000000000.0053023230.0000000000.000000000.0000000000.000000000AT3G511800.028619193 0.065604230.005302323 0.065604230.000000000AT3G51180
AT1G61960 0.055639070.022946390.020899160.0000000000.0028680690.0000000000.0000000000.0000000000.000000000.0089254570.000000000AT1G619600.002868069 0.043845550.000000000 0.052771000.008925457AT1G61960
In [239]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(epi_rank[1:10,], aes(x=reorder(GeneName, epi, decreasing = FALSE),  y=epi)) + geom_point(size=4)+ 
  labs(title="Epidermis-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [240]:
write.csv(epi_rank,"Epidermis_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [241]:
tf_rank <- epi_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [242]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [243]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Epidermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Epidermis + LRC¶

In [244]:
epilrc_rank <- bc_rank[which(bc_rank$epilrc*2 > bc_rank$all),]%>% arrange(desc(epilrc))
epilrc_rank <- epilrc_rank[-c(match(rownames(atri_rank), rownames(epilrc_rank)),match(rownames(tri_rank), rownames(epilrc_rank)),match(rownames(lrc_rank), rownames(epilrc_rank))),]
epilrc_rank$GeneName <- rownames(epilrc_rank)
In [245]:
epilrc_rank
A data.frame: 189 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
GATA233.1227266.6237926.5965569302.46621782.0516644240.803759050.0388189420.0940624360.15595292612.103508592.18839297AT2G450504.517882213.2203491.09259335825.32385714.29190157GATA2
NAI126.2930624.5314652.4274422000.44536330.2051577720.000000000.0000000000.0000000000.00000000010.314757378.36887560AT2G227700.6505211 6.9589070.00000000017.27366518.68363298NAI1
CRF323.1564263.7281322.5094325231.56346321.4555097160.227972440.0469672340.0000000000.007808814 9.414626264.20251415AT5G532903.0189729 6.2375640.28274849315.65219013.61714041CRF3
ATS16.5072605.4411213.3058522460.96861310.7076132340.051316600.0000000000.0000000000.000000000 5.946192430.08655144AT5G426301.6762263 8.7469730.05131660314.693166 6.03274386ATS
WRKY916.0590403.4190593.6236641920.00000000.0000000000.000000000.0000000000.0000000000.000000000 7.332665591.68365192AT1G681500.0000000 7.0427230.00000000014.375388 9.01631751WRKY9
WER21.5023044.8051673.0238496552.29882311.9298049511.608180520.0000000000.0000000000.000000000 6.474586571.36189276AT5G147504.2286280 7.8290161.60818052014.303603 7.83647933WER
BRON21.2100294.1134431.5414042421.77862470.7974590380.029490520.0000000000.0000000000.000000000 8.377749144.57185874AT1G757102.5760837 5.6548470.02949052514.03259612.94960788BRON
CRF226.7762064.2537292.6243771012.09297561.9469458882.865951700.2276527050.0766170171.680974990 7.016829633.99015150AT4G237504.0399215 6.8781074.85119640613.89493611.00698114CRF2
BT221.4654563.1938181.3188315800.18657040.0086042070.000000000.0000000000.0000000000.000000000 8.804607777.95302395AT3G483600.1951746 4.5126500.00000000013.31725816.75763172BT2
PLT123.9751433.9406080.0000000002.00953131.4920576860.056998420.0000000000.0000000000.000000000 9.148007617.32793997AT3G208403.5015890 3.9406080.05699842113.08861616.47594759PLT1
AT1G3606019.3176693.2888700.9110667270.41545570.4170508530.014384780.0000000000.0000000000.000000000 7.431263316.83957810AT1G360600.8325066 4.1999360.01438478411.63120014.27084142AT1G36060
WRKY7514.2724764.5012206.3568229280.10533040.0208022430.000000000.0000000000.0000000000.000000000 0.562987452.72531354AT5G130800.126132610.8580430.00000000011.421030 3.28830099WRKY75
GATA419.7627885.0051523.1602437032.90038103.4081206040.225641990.0000000000.1881248720.033494724 2.965502331.87612624AT3G605306.3085016 8.1653960.44726159011.130898 4.84162856GATA4
TMO720.5406465.3435862.7784982934.30470241.4045106250.690688010.0000000000.0000000000.007790552 2.939976373.07089432AT1G745005.7092130 8.1220840.69847856211.062060 6.01087069TMO7
SMB18.6476203.7951560.1549342641.38856150.2085956750.000000000.0000000000.0000000000.000000000 6.953646746.14672573AT1G795801.5971572 3.9500900.00000000010.90373713.10037247SMB
WRKY1715.0906753.3052271.3571508291.17772380.7373439690.326906490.0299310390.6943445830.261731502 6.013336961.18697873AT2G245701.9150678 4.6623781.31291361110.675715 7.20031569WRKY17
AT1G2668017.5642362.1107860.0000000001.49577760.0731101640.000000000.0000000000.0000000000.000000000 8.564404315.32015736AT1G266801.5688878 2.1107860.00000000010.67519013.88456168AT1G26680
IAA112.4625403.7130861.5310369930.36839420.0263482070.000000000.0000000000.0075248150.000000000 5.308538781.50761152AT4G145600.3947424 5.2441230.00752481510.552661 6.81615030IAA1
NAC09417.6255834.0475060.0065877971.71460541.0396732920.000000000.0000000000.0000000000.000000000 6.450496194.36671461AT5G398202.7542787 4.0540930.00000000010.50459010.81721080NAC094
LBD1519.1996711.9941260.5833689070.18501790.0126119430.000000000.0000000002.5748269460.000000000 7.823366446.02635266AT2G404700.1976298 2.5774952.57482694610.40086113.84971910LBD15
ERF916.4875053.5564330.3704994291.47820140.5268222441.407576520.0074187251.3890183160.000000000 6.374194961.37734056AT5G442102.0050237 3.9269332.80401356010.301128 7.75153552ERF9
KDR11.6263605.1695414.6169336860.68713270.4211657300.122605400.0000000000.0000000000.000000000 0.467248860.14173293AT1G269451.1082984 9.7864740.12260539710.253723 0.60898179KDR
ARF1613.2374122.3364061.8179219680.57252530.2602948650.000000000.0000000000.0000000000.000000000 5.440638042.80962553AT4G300800.8328201 4.1543280.000000000 9.594966 8.25026357ARF16
TGA1011.8844904.9543624.4429966031.56865070.8550815700.000000000.0000000000.0000000000.000000000 0.063399160.00000000AT5G068392.4237322 9.3973580.000000000 9.460757 0.06339916TGA10
FEZ15.3327523.3755340.0000000001.81489600.6979633240.000000000.0000000000.0000000000.000000000 5.649529553.79482909AT1G268702.5128593 3.3755340.000000000 9.025063 9.44435864FEZ
ATHB1312.9406673.4382304.6866867251.27581931.0399185861.305370640.2842574570.0000000000.115306229 0.742912090.05216550AT1G697802.3157378 8.1249171.704934322 8.867829 0.79507760ATHB13
RITF116.7520823.5952582.2900703421.88093512.6331145741.849993570.0000000000.0000000000.000000000 2.864153611.63855709AT2G126464.5140497 5.8853281.849993567 8.749482 4.50271070RITF1
ATMYC1 9.7814513.7765574.6211382690.67833920.6095030070.095912870.0000000000.0000000000.000000000 0.000000000.00000000AT4G004801.2878422 8.3976950.095912867 8.397695 0.00000000ATMYC1
GATA17L16.0266133.3179782.0504995371.78867921.8486392332.336758460.1486090990.2228518860.025486200 2.822956361.46415566AT4G161413.6373184 5.3684772.733705643 8.191434 4.28711202GATA17L
AT1G2219012.4232503.1425200.1043793380.86106970.1210720790.000000000.0619205250.0944881070.005574178 4.676884543.35534187AT1G221900.9821417 3.2468990.161982810 7.923784 8.03222642AT1G22190
.........................................................
HSFA80.419676660.0609468960.0281778870.0000000000.0172084130.0190382360.0000000000.0000000000.0824726850.1686642150.043168332AT1G679700.0172084130.0891247830.1015109210.257789000.211832546HSFA8
AT4G144900.481441520.0979147580.0629917550.0217755200.0650751180.1189637970.0101448160.0085696800.0060959250.0899101460.000000000AT4G144900.0868506380.1609065130.1437742180.250816660.089910146AT4G14490
AT1G607000.409949510.1824600850.0079805540.0348556450.0000000000.0177163050.0000000000.0727402570.0200620730.0594216630.014712932AT1G607000.0348556450.1904406390.1105186350.249862300.074134594AT1G60700
AT1G772500.424467520.0327775830.0730265010.0166937750.0266988330.0028638080.0068001940.0000000000.0277382830.1406746300.097193912AT1G772500.0433926090.1058040840.0374022860.246478710.237868542AT1G77250
AT1G720300.365519170.0735692830.0000000000.0219680920.0000000000.0483700260.0096304550.0000000000.0000000000.1613631290.050618187AT1G720300.0219680920.0735692830.0580004810.234932410.211981316AT1G72030
KAPP0.418195260.0376032710.1378708120.0141341990.0284884130.0075408780.0053023230.0188615750.0252668680.0532320420.089894880AT5G192800.0426226120.1754740830.0569716440.228706130.143126922KAPP
EMB22190.335854760.1274375080.0527716720.0220643790.0405830820.0251584020.0096304550.0000000000.0000000000.0364322180.021777039AT2G217100.0626474610.1802091800.0347888570.216641400.058209257EMB2219
VFP50.376077970.1081123480.0060794140.0410698150.0000000000.0186028370.0181037940.0000000000.0280747800.1010707130.054964265AT5G055500.0410698150.1141917620.0647814120.215262480.156034979VFP5
AT3G534400.297552500.0087320490.0672821960.0190054360.0357058830.0000000000.0021277200.0000000000.0000000000.1303208350.034378383AT3G534400.0547113200.0760142450.0021277200.206335080.164699218AT3G53440
SDG400.385249950.0207542640.1592938590.0189091500.0066921610.0893298540.0095351270.0596816980.0000000000.0210538400.000000000AT5G172400.0256013110.1800481230.1585466790.201101960.021053840SDG40
SUVH50.366329090.1059510870.0283635360.0914868090.0000000000.0000000000.0000000000.0063202160.0371847980.0663054490.030717196AT2G351600.0914868090.1343146230.0435050140.200620070.097022645SUVH5
TAF6B0.346316620.0117708420.0254183960.0000000000.0028680690.0079397130.0000000000.0000000000.0360529680.1379169850.124349649AT1G543600.0028680690.0371892380.0439926800.175106220.262266634TAF6B
RAD50.299165150.0597351520.0102576870.0109840460.0000000000.0447765040.0037332430.0050165440.0399604600.0932565720.031444947AT5G227500.0109840460.0699928390.0934867500.163249410.124701520RAD5
AT3G469500.293917470.0943811890.0510715760.0868132190.0000000000.0120389510.0164940220.0000000000.0000000000.0160811840.017037331AT3G469500.0868132190.1454527650.0285329740.161533950.033118514AT3G46950
AT2G470900.295238200.0356137690.0093971830.0082139630.0047801150.0000000000.0229596600.0062871920.0229333470.1074508390.077602132AT2G470900.0129940780.0450109530.0521801990.152461790.185052971AT2G47090
LSMT-L0.235804680.0429566280.0070961800.0163006840.0000000000.0000000000.0000000000.0056111000.0226088740.0960847790.045146431AT1G140300.0163006840.0500528080.0282199740.146137590.141231210LSMT-L
AT2G370000.172972140.0569406270.0806601180.0312525440.0000000000.0000000000.0041188490.0000000000.0000000000.0000000000.000000000AT2G370000.0312525440.1376007450.0041188490.137600750.000000000AT2G37000
CHR230.233238030.0000000000.0177573320.0000000000.0095602290.0000000000.0320412410.0000000000.0388408500.1062559940.028782379AT5G193100.0095602290.0177573320.0708820910.124013330.135038373CHR23
FRF10.198644600.0421633660.0808780200.0058369710.0289568310.0000000000.0260284420.0000000000.0147809660.0000000000.000000000AT3G594700.0347938030.1230413860.0408094070.123041390.000000000FRF1
AT3G248600.225818230.0000000000.0093733120.0000000000.0086042070.0000000000.0298938290.0000000000.0336888520.1048162040.039441828AT3G248600.0086042070.0093733120.0635826810.114189520.144258032AT3G24860
NBS10.155343890.0000000000.0371741250.0216792330.0263482070.0000000000.0000000000.0000000000.0000000000.0701423240.000000000AT3G026800.0480274400.0371741250.0000000000.107316450.070142324NBS1
MYB10.206033200.0223880600.0321482970.0000000000.0038240920.0000000000.0078470780.0050495680.0115711380.0508512640.072353708AT3G092300.0038240920.0545363570.0244677830.105387620.123204973MYB1
RRS10.136668570.0163731950.0402277810.0000000000.0358558490.0028638080.0053023230.0025082720.0085691010.0249682380.000000000AT5G452600.0358558490.0566009760.0192435040.081569210.024968238RRS1
AT3G202800.147634050.0000000000.0255335020.0000000000.0076481840.0000000000.0362308110.0000000000.0000000000.0556599440.022561606AT3G202800.0076481840.0255335020.0362308110.081193450.078221550AT3G20280
AT3G018900.143227410.0000000000.0686703240.0000000000.0557653670.0000000000.0134313200.0000000000.0000000000.0053603950.000000000AT3G018900.0557653670.0686703240.0134313200.074030720.005360395AT3G01890
AT3G511800.099525750.0405108670.0250933650.0000000000.0286191930.0000000000.0053023230.0000000000.0000000000.0000000000.000000000AT3G511800.0286191930.0656042320.0053023230.065604230.000000000AT3G51180
APTX0.093917150.0000000000.0327786820.0000000000.0038240920.0000000000.0112030170.0000000000.0000000000.0277599690.018351391AT5G013100.0038240920.0327786820.0112030170.060538650.046111361APTX
AT1G619600.055639070.0229463860.0208991620.0000000000.0028680690.0000000000.0000000000.0000000000.0000000000.0089254570.000000000AT1G619600.0028680690.0438455480.0000000000.052771000.008925457AT1G61960
LDL20.039742790.0000000000.0193628540.0000000000.0028680690.0000000000.0139340010.0000000000.0000000000.0035778630.000000000AT3G136820.0028680690.0193628540.0139340010.022940720.003577863LDL2
AT2G256500.028575850.0000000000.0032938980.0000000000.0038240920.0000000000.0027260910.0000000000.0000000000.0142730500.004458715AT2G256500.0038240920.0032938980.0027260910.017566950.018731765AT2G25650
In [246]:
options(repr.plot.width=8, repr.plot.height=40)
ggplot(epilrc_rank, aes(x=reorder(GeneName, epilrc, decreasing = FALSE),  y=epilrc)) + geom_point(size=4)+ 
  labs(title="Epidermis+LRC-specific TF Prioritization",x="", y = "Combined centrality score (betweeness, out and in degree)")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [247]:
write.csv(epilrc_rank,"Epidermis_LRC_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [248]:
tf_rank <- epilrc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [249]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [250]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Epidermis (includes LRC)", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Stele¶

In [251]:
stele_rank <- bc_rank[which(bc_rank$stele*2 > bc_rank$all),]%>% arrange(desc(stele))
stele_rank <- stele_rank[-c(match(rownames(per_rank), rownames(stele_rank)),match(rownames(pro_rank), rownames(stele_rank)),match(rownames(xyl_rank), rownames(stele_rank)),match(rownames(phl_rank), rownames(stele_rank))),]
stele_rank$GeneName <- rownames(stele_rank)
In [252]:
stele_rank
A data.frame: 382 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
BZIP931.422130.00000000.0000000000.0000000000.005736138 8.55316611.8808810.0200331510.96231840.000000000.00000000AT5G248000.0057361380.00000000031.416400.0000000000.00000000BZIP9
AT3G4343029.059650.00000000.0000000000.0054438800.029360833 9.20656511.2462611.83863137 6.73338800.000000000.00000000AT3G434300.0348047130.00000000029.024850.0000000000.00000000AT3G43430
AT1G2916020.930740.00000000.0079805540.0000000000.000000000 5.300742 8.2910640.01739278 6.91137650.295834750.10635337AT1G291600.0000000000.00798055420.520580.3038153090.40218812AT1G29160
HAT228.636360.00000000.0000000003.3831832775.196087392 8.800066 5.9802222.15045514 2.85387310.000000000.27247690AT5G473708.5792706690.00000000019.784620.0000000000.27247690HAT2
LEP33.017923.49007884.0988608451.3427568994.31870669612.181573 5.6646120.18424811 1.68627490.050812440.00000000AT5G139105.6614635957.58893959819.716717.6397520380.05081244LEP
AT1G6166019.233110.00000000.0000000000.0000000000.003824092 4.814712 9.0910041.19149612 4.13206980.000000000.00000000AT1G616600.0038240920.00000000019.229280.0000000000.00000000AT1G61660
MYB2019.002190.00000000.0000000000.0000000000.000000000 6.531919 8.9224081.41822212 2.12964190.000000000.00000000AT1G662300.0000000000.00000000019.002190.0000000000.00000000MYB20
HB-816.993210.00000000.0000000000.0000000000.000000000 1.315505 6.4036827.77220968 1.48290190.000000000.01891338AT4G328800.0000000000.00000000016.974300.0000000000.01891338HB-8
AT5G0579017.182800.00000000.0000000000.0038610040.224853405 6.253012 3.4383340.34310536 6.91963810.000000000.00000000AT5G057900.2287144090.00000000016.954090.0000000000.00000000AT5G05790
AT3G6049016.337870.00000000.0000000000.0000000000.000000000 3.380432 6.8237840.12843453 6.00522020.000000000.00000000AT3G604900.0000000000.00000000016.337870.0000000000.00000000AT3G60490
GBF617.438990.00000000.0000000000.2050704560.841471637 3.189423 5.6507352.15984172 5.31442190.017183240.06084192AT4G345901.0465420930.00000000016.314420.0171832380.07802516GBF6
IAA1215.304280.00000000.0000000000.0000000000.003074926 2.513093 6.7184974.91679601 1.15281430.000000000.00000000AT1G045500.0030749260.00000000015.301200.0000000000.00000000IAA12
AT2G3414022.575990.16594500.0000000000.0525352930.000000000 5.437538 6.8691620.01250833 2.84118304.834785442.36233103AT2G341400.0525352930.16594501015.160395.0007304487.19711647AT2G34140
DAG115.071650.00000000.0000000000.0000000000.000000000 3.917813 7.0649600.60312805 3.48574540.000000000.00000000AT3G618500.0000000000.00000000015.071650.0000000000.00000000DAG1
GRP2B19.356980.71280010.2030706321.3083411030.914635876 2.526467 2.7830844.90924834 4.26562341.059469270.67424107AT2G210602.2229769790.91587077114.484421.9753400391.73371034GRP2B
BT114.407680.00000000.0000000000.0689902330.203175898 2.477186 6.3231714.01500880 1.32014420.000000000.00000000AT5G631600.2721661300.00000000014.135510.0000000000.00000000BT1
HAT122.901581.52192800.2144988531.2989889011.003928797 4.247698 5.3291001.84570100 2.62019423.235035081.58450292AT4G174602.3029176971.73642686414.042694.9714619444.81953800HAT1
AT3G1128013.677620.00000000.0000000000.0000000000.029399941 4.211485 4.9968630.00000000 4.43986860.000000000.00000000AT3G112800.0293999410.00000000013.648220.0000000000.00000000AT3G11280
AT4G3041026.618292.13949126.0239661263.0875783991.537332655 4.968261 5.0630521.55410462 1.97663070.225632990.04223994AT4G304104.6249110548.16345732813.562058.3890903170.26787293AT4G30410
AT2G4113013.520670.08865550.0448035440.1809415200.228545253 6.099147 3.2126552.88788664 0.77803280.000000000.00000000AT2G411300.4094867730.13345904312.977720.1334590430.00000000AT2G41130
MIF114.009250.00000000.0000000000.2355346570.849578292 4.786948 5.0538190.00000000 2.92399980.099495970.05987183AT1G746601.0851129490.00000000012.764770.0994959700.15936780MIF1
HB4012.575720.00000000.0098816950.0000000000.000000000 1.695113 1.8199353.67421723 5.37657780.000000000.00000000AT4G367400.0000000000.00988169512.565840.0098816950.00000000HB40
HB-717.278150.27638270.1343360751.8698920032.384461534 4.127072 6.5581060.10919027 1.72923340.000000000.08947662AT2G466804.2543535370.41071880112.523600.4107188010.08947662HB-7
BZIP6116.465091.07734580.2326610980.8318748021.481109147 2.552713 4.1898102.02229437 3.53388870.424327480.11906956AT3G581202.3129839491.31000685012.298711.7343343330.54339704BZIP61
OBP311.933010.00000000.0000000000.0000000000.000000000 2.605650 5.1917630.02514877 4.11044770.000000000.00000000AT3G553700.0000000000.00000000011.933010.0000000000.00000000OBP3
SGR511.904700.00000000.0000000000.0000000000.000000000 1.243737 4.9202731.76829292 3.97240080.000000000.00000000AT2G019400.0000000000.00000000011.904700.0000000000.00000000SGR5
AT5G5178014.434780.27400370.1838736210.2363970421.958286776 4.185277 3.1074511.78387660 2.70561880.000000000.00000000AT5G517802.1946838180.45787727611.782220.4578772760.00000000AT5G51780
AT4G2406012.120880.00000000.0000000000.0615936130.295434878 2.946540 4.4105141.85228368 2.55451120.000000000.00000000AT4G240600.3570284910.00000000011.763850.0000000000.00000000AT4G24060
ATAUX2-1112.236250.10961860.0032938980.1295459990.000000000 1.328456 3.8306915.73311417 0.82269150.107495130.17134443AT5G437000.1295459990.11291249411.714950.2204076230.27883956ATAUX2-11
UNE1211.555050.00000000.0000000000.0000000000.335338175 2.866596 5.0089991.70933192 1.63478260.000000000.00000000AT4G025900.3353381750.00000000011.219710.0000000000.00000000UNE12
.........................................................
AT3G076700.268704410.0000000000.0328513530.0515724300.0000000000.1120856550.0385812440.0000000000.0000000000.0273189950.006294737AT3G076700.0515724300.0328513530.150666900.0601703490.033613732AT3G07670
bHLH110.231026600.0223880600.0000000000.0000000000.0000000000.0776649760.0231420610.0000000000.0491366490.0238666830.034828172AT4G360600.0000000000.0223880600.149943690.0462547430.058694855bHLH11
AT4G210600.272124650.0000000000.0060794140.0000000000.0047801150.0029823030.0261205290.0075908640.1115571200.0589379810.054076329AT4G210600.0047801150.0060794140.148250820.0650173950.113014310AT4G21060
TGA60.228707860.0117708420.0249577560.0000000000.0332685270.0423972370.0404362740.0125083350.0522906180.0000000000.011078272AT3G122500.0332685270.0367285980.147632460.0367285980.011078272TGA6
PCFS40.226317350.0000000000.0032938980.0000000000.0516202160.0311407380.0357217050.0087954630.0617667040.0121411850.021837444AT4G048850.0516202160.0032938980.137424610.0154350830.033978629PCFS4
AT1G103200.220911540.0040932990.0000000000.0000000000.0076481840.0107673880.0286650080.0000000000.0973964120.0350485990.037292651AT1G103200.0076481840.0040932990.136828810.0391418980.072341251AT1G10320
FRS110.174902420.0000000000.0042021440.0000000000.0254134860.0046047700.0403373710.0495394900.0400571340.0000000000.010748023AT1G102400.0254134860.0042021440.134538760.0042021440.010748023FRS11
AT1G620850.227772830.0269271040.0494401700.0054438800.0101300630.0491219450.0617557480.0163202790.0060959250.0000000000.002537712AT1G620850.0155739430.0763672740.133293900.0763672740.002537712AT1G62085
YY10.262036240.0000000000.0116540470.0000000000.0781511870.0149542040.0696368660.0087954630.0386227750.0117289170.028492782AT4G066340.0781511870.0116540470.132009310.0233829640.040221700YY1
MDA10.162341960.0330999430.0000000000.0000000000.0028680690.0369512520.0270190850.0075248150.0548787950.0000000000.000000000AT4G146050.0028680690.0330999430.126373950.0330999430.000000000MDA1
FRS30.216218030.0000000000.0072866940.0000000000.0397285190.0089533070.0031859210.0251487660.0878231110.0089382580.035153454AT2G271100.0397285190.0072866940.125111110.0162249520.044091712FRS3
FRS90.195540340.0000000000.0000000000.0082139630.0000000000.0363740680.0153812900.0000000000.0681841730.0673868510.000000000AT4G381700.0082139630.0000000000.119939530.0673868510.067386851FRS9
FRS120.196695300.0000000000.0000000000.0000000000.0637567020.0320137600.0517671290.0087624390.0239210250.0000000000.016474242AT5G189600.0637567020.0000000000.116464350.0000000000.016474242FRS12
AT1G621200.220055160.0000000000.0000000000.0301820550.0000000000.0911322440.0021277200.0200979390.0000000000.0492236510.027291548AT1G621200.0301820550.0000000000.113357900.0492236510.076515198AT1G62120
AT1G106100.156087560.0000000000.0000000000.0000000000.0028680690.0043848280.0616912310.0225414220.0205192420.0063393670.037743406AT1G106100.0028680690.0000000000.109136720.0063393670.044082773AT1G10610
FRS40.153390310.0000000000.0000000000.0000000000.0413540020.0031512810.0364187500.0087954630.0572983750.0000000000.006372440AT1G763200.0413540020.0000000000.105663870.0000000000.006372440FRS4
AT2G047400.180171980.0163263970.0355311810.0000000000.0116791330.0182442570.0226796350.0075248150.0528133620.0153731970.000000000AT2G047400.0116791330.0518575780.101262070.0672307750.015373197AT2G04740
AT1G619800.177894550.0000000000.0338301960.0217755200.0260585650.0447678870.0272681720.0000000000.0241942120.0000000000.000000000AT1G619800.0478340850.0338301960.096230270.0338301960.000000000AT1G61980
SMZ0.186378010.0000000000.0146412950.0000000000.0038240920.0000000000.0188020070.0000000000.0757464970.0126780800.060686040AT3G549900.0038240920.0146412950.094548500.0273193750.073364120SMZ
TCP90.154602310.0000000000.0000000000.0000000000.0615484710.0000000000.0037332430.0635584570.0257621370.0000000000.000000000AT2G456800.0615484710.0000000000.093053840.0000000000.000000000TCP9
AT4G128500.134782500.0000000000.0414518390.0000000000.0028680690.0043848280.0000000000.0588492330.0272285330.0000000000.000000000AT4G128500.0028680690.0414518390.090462590.0414518390.000000000AT4G12850
NAC0270.155608430.0000000000.0608125960.0000000000.0038240920.0531041030.0021277200.0000000000.0226166140.0000000000.013123306AT1G641050.0038240920.0608125960.077848440.0608125960.013123306NAC027
TRFL50.131843210.0000000000.0032938980.0000000000.0028680690.0447765040.0143230890.0000000000.0168360040.0497456450.000000000AT1G157200.0028680690.0032938980.075935600.0530395440.049745645TRFL5
U2AF35B0.123567770.0000000000.0000000000.0000000000.0047801150.0000000000.0179799960.0168818110.0325824600.0400081730.011335219AT5G428200.0047801150.0000000000.067444270.0400081730.051343393U2AF35B
TAF120.113319790.0000000000.0046866560.0000000000.0114722750.0419355950.0171086040.0000000000.0071080710.0189465040.012062083AT3G100700.0114722750.0046866560.066152270.0236331600.031008587TAF12
TTR10.118470160.0000000000.0032938980.0000000000.0028680690.0226803730.0000000000.0000000000.0394031360.0248484510.025376229AT5G450500.0028680690.0032938980.062083510.0281423490.050224680TTR1
EMB930.077261390.0000000000.0032938980.0000000000.0076481840.0000000000.0169878050.0204039990.0228964640.0000000000.006031042AT2G030500.0076481840.0032938980.060288270.0032938980.006031042EMB93
NF-YB30.052779510.0000000000.0000000000.0000000000.0000000000.0000000000.0127663190.0147908230.0252223700.0000000000.000000000AT4G145400.0000000000.0000000000.052779510.0000000000.000000000NF-YB3
AT5G064200.060377830.0000000000.0115203260.0058369710.0095602290.0000000000.0112030170.0000000000.0222572890.0000000000.000000000AT5G064200.0153972010.0115203260.033460310.0115203260.000000000AT5G06420
MYB640.043246780.0000000000.0051950390.0054438800.0000000000.0000000000.0000000000.0204039990.0122038650.0000000000.000000000AT5G110500.0054438800.0051950390.032607860.0051950390.000000000MYB64
In [253]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(stele_rank[1:10,], aes(x=reorder(GeneName, stele, decreasing = FALSE),  y=stele)) + geom_point(size=4)+ 
  labs(title="Stele-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [254]:
write.csv(stele_rank,"Stele_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [255]:
tf_rank <- stele_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [256]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [257]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Stele", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Root Cap¶

In [258]:
rc_rank <- bc_rank[which(bc_rank$rc*2 > bc_rank$all),]%>% arrange(desc(rc))
rc_rank <- rc_rank[-c(match(rownames(lrc_rank), rownames(rc_rank)),match(rownames(col_rank), rownames(rc_rank))),]
rc_rank$GeneName <- rownames(rc_rank)
In [259]:
rc_rank
A data.frame: 186 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
NAI126.2930624.53146532.4274422000.445363310.2051577720.0000000000.0000000000.0000000000.00000000010.3147578.368876AT2G227700.6505210866.95890750.00000000017.27366518.683633NAI1
BT221.4654563.19381821.3188315800.186570440.0086042070.0000000000.0000000000.0000000000.000000000 8.8046087.953024AT3G483600.1951746424.51264980.00000000013.31725816.757632BT2
PLT123.9751433.94060820.0000000002.009531271.4920576860.0569984210.0000000000.0000000000.000000000 9.1480087.327940AT3G208403.5015889613.94060820.05699842113.08861616.475948PLT1
AT1G3270020.2870870.12960960.0000000000.040780960.1272533450.6871162521.1917633950.2763007282.201376646 6.9674388.665448AT1G327000.1680343010.12960964.356557021 7.09704815.632886AT1G32700
AT1G3606019.3176693.28886970.9110667270.415455730.4170508530.0143847840.0000000000.0000000000.000000000 7.4312636.839578AT1G360600.8325065864.19993640.01438478411.63120014.270841AT1G36060
AT1G2668017.5642362.11078610.0000000001.495777600.0731101640.0000000000.0000000000.0000000000.000000000 8.5644045.320157AT1G266801.5688877612.11078610.00000000010.67519013.884562AT1G26680
LBD1519.1996711.99412580.5833689070.185017850.0126119430.0000000000.0000000002.5748269460.000000000 7.8233666.026353AT2G404700.1976297932.57749472.57482694610.40086113.849719LBD15
CRF323.1564263.72813172.5094325231.563463211.4555097160.2279724450.0469672340.0000000000.007808814 9.4146264.202514AT5G532903.0189729226.23756420.28274849315.65219013.617140CRF3
SMB18.6476203.79515590.1549342641.388561490.2085956750.0000000000.0000000000.0000000000.000000000 6.9536476.146726AT1G795801.5971571703.95009010.00000000010.90373713.100372SMB
BRON21.2100294.11344311.5414042421.778624700.7974590380.0294905250.0000000000.0000000000.000000000 8.3777494.571859AT1G757102.5760837355.65484730.02949052514.03259612.949608BRON
AXR318.6586413.65881870.0258694890.645456980.0170019390.9949084482.2195974040.0112707110.111210919 3.8212957.153212AT1G042500.6624589153.68468823.336987482 7.50598310.974507AXR3
NAC09417.6255834.04750560.0065877971.714605431.0396732920.0000000000.0000000000.0000000000.000000000 6.4504964.366715AT5G398202.7542787254.05409340.00000000010.50459010.817211NAC094
AGL2114.8913671.53724480.0000000001.920376150.1381742920.2200392350.2605156960.0175579030.091092158 6.1467314.559636AT4G379402.0585504461.53724480.589204992 7.68397610.706367AGL21
AIL612.1646411.18301560.0432178530.725787450.1914864490.0000000000.0000000000.0000000000.000000000 4.8122915.208843AT5G105100.9172739001.22623340.000000000 6.03852510.021134AIL6
SPT13.7342301.92853440.0000000000.879544580.3157547680.2291040480.1688322780.2193058660.067813143 5.2186444.706697AT4G369301.1952993521.92853440.685055335 7.147178 9.925341SPT
BIM113.4290951.89389910.1834707460.446193580.1748455770.3674342320.3952966090.0213368220.388532254 5.2767534.281332AT5G081300.6210391592.07736981.172599917 7.354123 9.558086BIM1
FEZ15.3327523.37553380.0000000001.814896000.6979633240.0000000000.0000000000.0000000000.000000000 5.6495303.794829AT1G268702.5128593243.37553380.000000000 9.025063 9.444359FEZ
RAV212.4192470.24140810.0084889370.000000000.0047801150.5912321961.8261014510.1439945720.318591046 4.3974194.887231AT1G688400.0047801150.24989702.879919265 4.647316 9.284650RAV2
WRKY1511.4673170.66423450.0000000000.980764720.4252578590.0000000000.0704405660.0594923010.032870208 4.0460725.188185AT2G233201.4060225820.66423450.162803075 4.710306 9.234257WRKY15
WRKY916.0590403.41905863.6236641920.000000000.0000000000.0000000000.0000000000.0000000000.000000000 7.3326661.683652AT1G681500.0000000007.04272280.00000000014.375388 9.016318WRKY9
ZFP514.3560452.13523560.1424487400.000000000.0000000000.1075456230.3318901462.7602928820.037982619 4.8743393.966310AT1G104800.0000000002.27768443.237711271 7.152024 8.840649ZFP5
ATL612.2519801.89481910.0451275861.304699350.1292597770.0266695740.2657606050.0443623940.133612769 4.2129614.194708AT3G052001.4339591291.93994670.470405341 6.152907 8.407669ATL6
ARF1613.2374122.33640591.8179219680.572525270.2602948650.0000000000.0000000000.0000000000.000000000 5.4406382.809626AT4G300800.8328201394.15432780.000000000 9.594966 8.250264ARF16
AT1G2219012.4232503.14251990.1043793380.861069660.1210720790.0000000000.0619205250.0944881070.005574178 4.6768853.355342AT1G221900.9821417413.24689920.161982810 7.923784 8.032226AT1G22190
IAA3312.7128551.94984740.0809043571.237301991.4440925160.0685422960.0000000000.0000000000.000000000 4.6580013.274165AT5G574202.6813945092.03075170.068542296 6.688753 7.932167IAA33
AT1G4947510.2225291.20958420.0000000001.198123240.1254937230.0362661950.0735814930.0000000000.000000000 4.8459902.733490AT1G494751.3236169681.20958420.109847689 6.055575 7.579481AT1G49475
AT1G76580 7.6788010.22894870.0000000000.030374630.0174152700.0044601760.0059895910.0000000000.026661484 3.5350093.829942AT1G765800.0477898980.22894870.037111251 3.763958 7.364951AT1G76580
EEL10.8958882.05615470.0666511331.208670490.3752246190.1016376000.0000000000.0000000000.000000000 4.1359042.951645AT2G410701.5838951142.12280580.101637600 6.258710 7.087550EEL
AT4G3978011.9983910.70672301.4276700720.507024440.4019395890.0366421630.0821864980.0000000001.804884394 3.6608363.370484AT4G397800.9089640332.13439311.923713055 5.795229 7.031321AT4G39780
IAA112.4625403.71308551.5310369930.368394210.0263482070.0000000000.0000000000.0075248150.000000000 5.3085391.507612AT4G145600.3947424215.24412250.00752481510.552661 6.816150IAA1
.........................................................
AT1G772500.424467520.0327775830.0730265010.0166937750.0266988330.0028638080.0068001940.0000000000.0277382830.1406746300.097193912AT1G772500.0433926090.1058040840.0374022860.2464787140.23786854AT1G77250
AT3G521000.445815100.0354267450.0472471050.0346281730.0482396500.0000000000.0277333350.0000000000.0262883140.1274971260.098754653AT3G521000.0828678230.0826738510.0540216490.2101709770.22625178AT3G52100
AT1G720300.365519170.0735692830.0000000000.0219680920.0000000000.0483700260.0096304550.0000000000.0000000000.1613631290.050618187AT1G720300.0219680920.0735692830.0580004810.2349324120.21198132AT1G72030
HSFA80.419676660.0609468960.0281778870.0000000000.0172084130.0190382360.0000000000.0000000000.0824726850.1686642150.043168332AT1G679700.0172084130.0891247830.1015109210.2577889980.21183255HSFA8
SPL110.271672660.0000000000.0000000000.0000000000.0095602290.0000000000.0055116060.0000000000.0460171860.0978088660.112774773AT1G273600.0095602290.0000000000.0515287930.0978088660.21058364SPL11
IBM10.348214150.0302374250.0062811460.0000000000.0411003560.0195778630.0443735430.0025082720.0095812470.0741231860.120431115AT3G076100.0411003560.0365185720.0760409240.1106417580.19455430IBM1
CPSF300.371675300.0136902280.0611880490.0297006240.0086042070.0149032400.0244643180.0062871920.0231474180.1069734550.082716572AT1G304600.0383048300.0748782770.0688021680.1818517320.18969003CPSF30
AT1G765100.366987260.0161109910.0115203260.0190054360.0116791330.0348587820.0447121140.0100330870.0298901440.0999890360.089188215AT1G765100.0306845690.0276313160.1194941270.1276203530.18917725AT1G76510
MBD80.319344060.0079320700.0051950390.0054438800.0254134860.0000000000.0308382680.0100330870.0470098020.0694071000.118071326AT1G223100.0308573660.0131271090.0878811570.0825342090.18747843MBD8
AT4G290000.329091440.0098514560.0177573320.0000000000.0479686040.0031512810.0474007300.0000000000.0156073060.0777718900.109582837AT4G290000.0479686040.0276087880.0661593170.1053806780.18735473AT4G29000
AT2G470900.295238200.0356137690.0093971830.0082139630.0047801150.0000000000.0229596600.0062871920.0229333470.1074508390.077602132AT2G470900.0129940780.0450109530.0521801990.1524617920.18505297AT2G47090
AT1G295600.301227480.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.0000000000.1219651370.1311529550.048109393AT1G295600.0000000000.0000000000.1219651370.1311529550.17926235AT1G29560
AT1G043900.268065910.0341328380.0083601480.0058369710.0289568310.0000000000.0188908420.0000000000.0033395410.0891693240.079379417AT1G043900.0347938030.0424929860.0222303820.1316623100.16854874AT1G04390
AT2G246500.241692150.0079320700.0137771890.0000000000.0076481840.0000000000.0121058390.0000000000.0321133030.0904330050.077682561AT2G246500.0076481840.0217092600.0442191430.1121422650.16811557AT2G24650
AT2G414500.317298770.0161109910.0000000000.0301820550.0428317230.0555994230.0037332430.0000000000.0020473420.1037418210.063052174AT2G414500.0730137790.0161109910.0613800090.1198528120.16679400AT2G41450
AT3G534400.297552500.0087320490.0672821960.0190054360.0357058830.0000000000.0021277200.0000000000.0000000000.1303208350.034378383AT3G534400.0547113200.0760142450.0021277200.2063350800.16469922AT3G53440
TAFII210.242895090.0000000000.0079805540.0000000000.0254134860.0031512810.0021277200.0000000000.0501176520.0957354900.058368906AT1G541400.0254134860.0079805540.0553966540.1037160440.15410440TAFII21
HSF10.267214970.0326738560.0104832910.0000000000.0276631700.0000000000.0096030330.0000000000.0380328420.0889811720.059777608AT4G177500.0276631700.0431571470.0476358760.1321383190.14875878HSF1
AT3G248600.225818230.0000000000.0093733120.0000000000.0086042070.0000000000.0298938290.0000000000.0336888520.1048162040.039441828AT3G248600.0086042070.0093733120.0635826810.1141895160.14425803AT3G24860
LSMT-L0.235804680.0429566280.0070961800.0163006840.0000000000.0000000000.0000000000.0056111000.0226088740.0960847790.045146431AT1G140300.0163006840.0500528080.0282199740.1461375870.14123121LSMT-L
HDG110.193514030.0079320700.0171292130.0000000000.0038240920.0000000000.0173622300.0000000000.0077905520.0460275620.093448312AT1G733600.0038240920.0250612840.0251527820.0710888460.13947587HDG11
CHR230.233238030.0000000000.0177573320.0000000000.0095602290.0000000000.0320412410.0000000000.0388408500.1062559940.028782379AT5G193100.0095602290.0177573320.0708820910.1240133250.13503837CHR23
MYB10.206033200.0223880600.0321482970.0000000000.0038240920.0000000000.0078470780.0050495680.0115711380.0508512640.072353708AT3G092300.0038240920.0545363570.0244677830.1053876210.12320497MYB1
AT5G415800.196976660.0136902280.0206072560.0109840460.0126351560.0000000000.0122066870.0000000000.0271442440.0285388650.071170183AT5G415800.0236192020.0342974840.0393509310.0628363490.09970905AT5G41580
EMF20.197369210.0098514560.0072866940.0058369710.0244574630.0000000000.0021277200.0075578400.0414976020.0185598390.080193630AT5G512300.0302944350.0171381500.0511831610.0356979890.09875347EMF2
AT3G202800.147634050.0000000000.0255335020.0000000000.0076481840.0000000000.0362308110.0000000000.0000000000.0556599440.022561606AT3G202800.0076481840.0255335020.0362308110.0811934460.07822155AT3G20280
TCP40.077828030.0000000000.0000000000.0000000000.0095602290.0000000000.0084769260.0000000000.0000000000.0290509460.030739923AT3G150300.0095602290.0000000000.0084769260.0290509460.05979087TCP4
AT5G074000.079313520.0000000000.0000000000.0134652700.0047801150.0000000000.0074187250.0000000000.0000000000.0142730500.039376358AT5G074000.0182453850.0000000000.0074187250.0142730500.05364941AT5G07400
AT2G256500.028575850.0000000000.0032938980.0000000000.0038240920.0000000000.0027260910.0000000000.0000000000.0142730500.004458715AT2G256500.0038240920.0032938980.0027260910.0175669490.01873177AT2G25650
AT4G196500.020168680.0000000000.0032938980.0000000000.0038240920.0000000000.0021277200.0000000000.0000000000.0035778630.007345102AT4G196500.0038240920.0032938980.0021277200.0068717620.01092297AT4G19650
In [260]:
rc_rank[1:50,]
A data.frame: 50 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
NAI126.2930624.531465282.4274422000.445363310.2051577720.0000000000.0000000000.0000000000.00000000010.31475748.368876AT2G227700.6505210866.958907480.00000000017.27366518.683633NAI1
BT221.4654563.193818231.3188315800.186570440.0086042070.0000000000.0000000000.0000000000.000000000 8.80460787.953024AT3G483600.1951746424.512649810.00000000013.31725816.757632BT2
PLT123.9751433.940608250.0000000002.009531271.4920576860.0569984210.0000000000.0000000000.000000000 9.14800767.327940AT3G208403.5015889613.940608250.05699842113.08861616.475948PLT1
AT1G3270020.2870870.129609580.0000000000.040780960.1272533450.6871162521.1917633950.2763007282.201376646 6.96743808.665448AT1G327000.1680343010.129609584.356557021 7.09704815.632886AT1G32700
AT1G3606019.3176693.288869700.9110667270.415455730.4170508530.0143847840.0000000000.0000000000.000000000 7.43126336.839578AT1G360600.8325065864.199936430.01438478411.63120014.270841AT1G36060
AT1G2668017.5642362.110786130.0000000001.495777600.0731101640.0000000000.0000000000.0000000000.000000000 8.56440435.320157AT1G266801.5688877612.110786130.00000000010.67519013.884562AT1G26680
LBD1519.1996711.994125770.5833689070.185017850.0126119430.0000000000.0000000002.5748269460.000000000 7.82336646.026353AT2G404700.1976297932.577494682.57482694610.40086113.849719LBD15
CRF323.1564263.728131652.5094325231.563463211.4555097160.2279724450.0469672340.0000000000.007808814 9.41462634.202514AT5G532903.0189729226.237564180.28274849315.65219013.617140CRF3
SMB18.6476203.795155860.1549342641.388561490.2085956750.0000000000.0000000000.0000000000.000000000 6.95364676.146726AT1G795801.5971571703.950090130.00000000010.90373713.100372SMB
BRON21.2100294.113443071.5414042421.778624700.7974590380.0294905250.0000000000.0000000000.000000000 8.37774914.571859AT1G757102.5760837355.654847310.02949052514.03259612.949608BRON
AXR318.6586413.658818680.0258694890.645456980.0170019390.9949084482.2195974040.0112707110.111210919 3.82129517.153212AT1G042500.6624589153.684688173.336987482 7.50598310.974507AXR3
NAC09417.6255834.047505650.0065877971.714605431.0396732920.0000000000.0000000000.0000000000.000000000 6.45049624.366715AT5G398202.7542787254.054093450.00000000010.50459010.817211NAC094
AGL2114.8913671.537244820.0000000001.920376150.1381742920.2200392350.2605156960.0175579030.091092158 6.14673124.559636AT4G379402.0585504461.537244820.589204992 7.68397610.706367AGL21
AIL612.1646411.183015570.0432178530.725787450.1914864490.0000000000.0000000000.0000000000.000000000 4.81229115.208843AT5G105100.9172739001.226233420.000000000 6.03852510.021134AIL6
SPT13.7342301.928534400.0000000000.879544580.3157547680.2291040480.1688322780.2193058660.067813143 5.21864414.706697AT4G369301.1952993521.928534400.685055335 7.147178 9.925341SPT
BIM113.4290951.893899090.1834707460.446193580.1748455770.3674342320.3952966090.0213368220.388532254 5.27675354.281332AT5G081300.6210391592.077369841.172599917 7.354123 9.558086BIM1
FEZ15.3327523.375533810.0000000001.814896000.6979633240.0000000000.0000000000.0000000000.000000000 5.64952953.794829AT1G268702.5128593243.375533810.000000000 9.025063 9.444359FEZ
RAV212.4192470.241408050.0084889370.000000000.0047801150.5912321961.8261014510.1439945720.318591046 4.39741934.887231AT1G688400.0047801150.249896992.879919265 4.647316 9.284650RAV2
WRKY1511.4673170.664234490.0000000000.980764720.4252578590.0000000000.0704405660.0594923010.032870208 4.04607205.188185AT2G233201.4060225820.664234490.162803075 4.710306 9.234257WRKY15
WRKY916.0590403.419058623.6236641920.000000000.0000000000.0000000000.0000000000.0000000000.000000000 7.33266561.683652AT1G681500.0000000007.042722810.00000000014.375388 9.016318WRKY9
ZFP514.3560452.135235620.1424487400.000000000.0000000000.1075456230.3318901462.7602928820.037982619 4.87433943.966310AT1G104800.0000000002.277684353.237711271 7.152024 8.840649ZFP5
ATL612.2519801.894819140.0451275861.304699350.1292597770.0266695740.2657606050.0443623940.133612769 4.21296084.194708AT3G052001.4339591291.939946730.470405341 6.152907 8.407669ATL6
ARF1613.2374122.336405871.8179219680.572525270.2602948650.0000000000.0000000000.0000000000.000000000 5.44063802.809626AT4G300800.8328201394.154327840.000000000 9.594966 8.250264ARF16
AT1G2219012.4232503.142519870.1043793380.861069660.1210720790.0000000000.0619205250.0944881070.005574178 4.67688453.355342AT1G221900.9821417413.246899210.161982810 7.923784 8.032226AT1G22190
IAA3312.7128551.949847380.0809043571.237301991.4440925160.0685422960.0000000000.0000000000.000000000 4.65800133.274165AT5G574202.6813945092.030751740.068542296 6.688753 7.932167IAA33
AT1G4947510.2225291.209584170.0000000001.198123240.1254937230.0362661950.0735814930.0000000000.000000000 4.84599042.733490AT1G494751.3236169681.209584170.109847689 6.055575 7.579481AT1G49475
AT1G76580 7.6788010.228948690.0000000000.030374630.0174152700.0044601760.0059895910.0000000000.026661484 3.53500923.829942AT1G765800.0477898980.228948690.037111251 3.763958 7.364951AT1G76580
EEL10.8958882.056154670.0666511331.208670490.3752246190.1016376000.0000000000.0000000000.000000000 4.13590442.951645AT2G410701.5838951142.122805810.101637600 6.258710 7.087550EEL
AT4G3978011.9983910.706723001.4276700720.507024440.4019395890.0366421630.0821864980.0000000001.804884394 3.66083633.370484AT4G397800.9089640332.134393071.923713055 5.795229 7.031321AT4G39780
IAA112.4625403.713085511.5310369930.368394210.0263482070.0000000000.0000000000.0075248150.000000000 5.30853881.507612AT4G145600.3947424215.244122500.00752481510.552661 6.816150IAA1
AT5G0351012.3780220.351002280.0311490520.000000000.1371918710.0213077990.0209181064.9757369060.109229651 1.53226365.199223AT5G035100.1371918710.382151335.127192462 1.914415 6.731486AT5G03510
PLT212.0936013.213559990.0000000001.359604811.0064040150.0737263110.0000000000.0000000000.000000000 3.99883202.441474AT1G511902.3660088233.213559990.073726311 7.212392 6.440306PLT2
COL5 8.2356881.361914250.1646868080.061054350.0642367120.0697290900.2361789210.0100330870.007796400 2.46454213.795516AT5G576600.1252910661.526601050.323737498 3.991143 6.260058COL5
BBX30 9.7190730.707691800.0000000000.936772310.2400967280.2118337710.5141058620.8810101410.082920728 2.79071983.353922AT4G152481.1768690340.707691801.689870502 3.498412 6.144642BBX30
ATCTH10.1142171.791626901.0058410230.336274410.2268125480.1530391980.1946159580.5979822200.105784934 4.10708021.595159AT2G259000.5630869612.797467931.051422311 6.904548 5.702239ATCTH
CHR38 7.6582720.837810110.0000000000.838620160.0545051030.0146907420.1412272450.0000000000.069894227 3.10321992.598305AT3G426700.8931252650.837810110.225812214 3.941030 5.701525CHR38
NAC083 9.1180270.345849790.0084484290.866647451.2265196130.3033236180.6464456910.0100661110.345777910 0.84305384.521895AT5G131802.0931670630.354298221.305613331 1.197352 5.364949NAC083
AT3G57800 6.0937010.156389780.0254668120.033869510.0000000000.0630427520.1107019420.0050495680.370642324 2.57495672.753582AT3G578000.0338695070.181856590.549436586 2.756813 5.328538AT3G57800
CZF1 8.0845190.293334710.0166177170.350086760.2208602280.5862715060.8117113200.0112707110.702898467 3.21913311.872334AT2G401400.5709469830.309952432.112152004 3.529086 5.091468CZF1
HSFA7A 6.4383500.126873030.0070961800.169044600.1070253620.1730206520.3361854810.0000000000.587030448 2.32089922.611175AT3G519100.2760699610.133969211.096236581 2.454868 4.932074HSFA7A
AT1G74840 7.2743950.395701620.9548400460.437174740.3361248100.0888688980.1049547590.5181209180.050515540 2.93095421.457139AT1G748400.7732995541.350541660.762460115 4.281496 4.388093AT1G74840
AT2G35910 4.6368970.235549650.0593640860.000000000.0000000000.0000000000.0000000000.0000000000.000000000 2.23270012.109284AT2G359100.0000000000.294913740.000000000 2.527614 4.341984AT2G35910
RAP2.1 5.1116110.000000000.0000000000.474480420.0112420130.0000000000.0067260910.7713268130.000000000 2.01641391.831422AT1G467680.4857224290.000000000.778052904 2.016414 3.847836RAP2.1
AT4G25400 5.5616471.011733430.5199610690.000000000.0955283170.1419377420.2244477860.0000000000.036259813 1.22446792.307311AT4G254000.0955283171.531694500.402645341 2.756162 3.531779AT4G25400
ARF6 4.6120460.506605870.0333149750.482571140.1099487700.0000000000.0000000000.0000000000.000000000 1.30394512.175660AT1G303300.5925199070.539920850.000000000 1.843866 3.479605ARF6
RDUF1 4.2291450.440021260.0359501030.442082330.0693192990.0000000000.0069043640.0000000000.030089012 1.27831651.926462AT3G466200.5114016240.475971370.036993376 1.754288 3.204778RDUF1
WRKY14 4.0128800.633930720.2256983580.000000000.0000000000.0000000000.0000000000.0000000000.000000000 1.65023781.503014AT1G306500.0000000000.859629080.000000000 2.509867 3.153251WRKY14
SCL8 4.4569340.091991880.0039927950.108606970.0505946550.0425780340.1011050990.7952192190.167179674 1.29437511.801291AT5G525100.1592016200.095984681.106082026 1.390360 3.095666SCL8
BHLH101 3.7037930.232387640.0000000000.118439570.0091740400.0000000000.0000000000.0000000000.302435295 1.34382721.697529AT5G041500.1276136100.232387640.302435295 1.576215 3.041357BHLH101
PIF3 3.8675860.275855200.0000000000.319665740.0419174610.0118722110.0000000000.0000000000.402717727 1.35760671.457951AT1G095300.3615831990.275855200.414589938 1.633462 2.815558PIF3
In [261]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(rc_rank[1:10,], aes(x=reorder(GeneName, rc, decreasing = FALSE),  y=rc)) + geom_point(size=4)+ 
  labs(title="Root Cap-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [262]:
write.csv(rc_rank,"Root_Cap_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [263]:
tf_rank <- rc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [264]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [265]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Root Cap", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))